类和成员方法

类:类名要满足大驼峰形式,类名首字母大写,所有类都继承object类

定义类的格式

class 类名:  

    pass

对象:

  对象名类名()

成员变量:

定义成员变量语法格式(公有属性/公有变量)

class 类名:  

  def __init__(self):

    self.变量名1 = 值1

    self.变量名2 = None

 

成员变量定义语法格式(独有属性/独有变量)

对象名.变量名 = 值

 

 

公有变量与独有变量的区别

  1.公有变量在__init__方法中声明,每个对象都具有该变量

  2.独有变量在创建对象后声明,只有当前对象具有此变量

     3.定义对象的独有变量时,如果独有变量名与公有变量名相同,视为修改公有变量的值;如果独有变量名与公有变量名不相同,视为定义新的独有属性

  4.None含义是为空,表示没有具体的数据

成员方法

1成员方法概念

成员方法用于描述对象的固有行为

2定义成员方法语法格式

格式一(无参方法):

  class 类名:  

    def 方法名(self):

      方法体

 

 

格式二(有参方法)

  class 类名:  

    def 方法名(self,形参1,形参2,…):

      方法体

 

3调用成员方法语法格式

格式一(调用无参方法): 

  对象名.方法名()

  

格式二(调用有参方法): 

对象名.方法名(实参1,实参2,…)

__init__方法调用和执行

   __init__方法在创建对象时被运行,无需手工调用即可执行

  

  

  __init__方法中如果有形参,在创建对象时需要传递对应的实参

   

__str__方法的作用

  __str__方法是在使用print函数打印输出对象到屏幕时被调用的方法,用于返回对象的规范化字符串表现形式

  

def __str__(self):

  return 打印对象是显示的信息

  

成员方法调用类成员

  1成员方法中调用成员变量语法格式

  self.变量名

·    

  

  2成员方法中调用成员方法语法格式

  self.方法名(实参1,实参2,…)

    

  3 self

  self仅出现在成员方法中,指代执行该方法的对象。

 

类变量

 

  类变量的概念

    类变量是定义在类中,不属于某个具体对象的特征,被所有对象共同使用的特征

  定义类变量语法格式

  class 类名:

    变量名 = 值

  调用类变量语法格式

    赋值格式:

    类名.类变量名 = 值

    取值格式:

    类名.类变量名(推荐)

    对象名.类变量名(不推荐)

  注意事项

  类变量推荐使用类名取值访问,也可以使用对象名取值访问

  类变量只能通过类名修改;使用对象名调用类变量修改类变量的值时会创建新的对象独有变量;如果此时对象具有同名对象变量,则修改对应的变量值

  类变量可以私有化

 

方法

  类方法概念

  类方法是定义在类中,不属于某个具体对象的行为,被所有对象共同使用的行为

  定义类方法基本语法

  class 类名:

  @classmethod

    def 方法名(cls, 形参1,形参2,…):

      方法体

 

  调用类方法语法格式

  类名.类方法名(实参1,实参2,…)  (推荐)

  对象名.类方法名(实参1,实参2,…) (不推荐)

  注意事项

  类方法中不允许使用实例变量和实例方法

  类方法中允许使用类变量和类方法,通过第一个参数cls进行

  实例方法中允许使用类变量和类方法

静态方法

  定义静态方法语法格式

  class 类名:

    @staticmethod

      def 方法名(形参1,形参2,…):

      方法体

      

附带一个手机案例

 

 

# 分析
# 1. 耗电操作之前必须进行判定(if系列),根据结果不同做对应的事情
# 2. 充电操作必须进行判定,手机电量不能超过最大值100

class Phone:
    def __init__(self):
        self.power = 100

    def game(self):
        """打游戏操作,耗电10"""
        # 判定当前电量是否能够完成打游戏的要求
        if self.power >= 10:
            # 正常运行,减少电量
            print("正在打游戏,耗电10")
            self.power = self.power - 10
        else:
            # 不能正常运行,不减少电量
            print("当前电量不足以完成打游戏的操作,打游戏操作被终止")

    def music(self):
        if self.power >= 5:
            # 正常运行,减少电量
            print("正在听歌,耗电5")
            self.power -= 5
        else:
            # 不能正常运行,不减少电量
            print("当前电量不足以完成听歌的操作,听歌操作被终止")

    def call(self):
        if self.power >= 4:
            # 正常运行,减少电量
            print("正在打电话,耗电4")
            self.power -= 4
        else:
            # 不能正常运行,不减少电量
            print("当前电量不足以完成打电话的操作,打电话操作被终止")

    def answer(self):
        if self.power >= 3:
            # 正常运行,减少电量
            print("正在接电话,耗电3")
            self.power -= 3
        else:
            # 不能正常运行,不减少电量
            print("当前电量不足以完成接电话的操作,接电话操作被终止")

    def charge(self,num):
        # 判断当前电量,再与充电量做比较,根据情况执行不同的内容
        if self.power + num > 100:
            # 过冲
            print("充电操作提前结束,当前电量为:100")
            self.power = 100
        else:
            # 正常冲
            print("正在充电,冲电量是%d" % num)
            self.power += num

    def __str__(self):
        return "当前手机电量为:%d" % self.power

# 创建一部电话,当前电量是100
p = Phone()
# 执行耗电操作
p.game()
p.game()
p.game()
p.game()
p.game()
p.game()
p.game()
p.game()
p.game()
p.game()
print(p)
p.game()
p.charge(40)
print(p)

 

posted @ 2019-03-04 22:47  阿磊小哥哥呀  阅读(1457)  评论(0)    收藏  举报