Python中类方法、实例方法、静态方法的使用方式及区别

在python基础中关于类方法、实例方法、静态方法的 三种方法常用的使用方式

只访问成员变量的⽅法,定义成实例⽅法 

只访问类变量的⽅法,定义类⽅法

既访问成员变量,也访问类变量的⽅法,定义成实例⽅法 

既不访问成员变量,也不访问类变量,定义成静态⽅法

1.类方法:(类方法在定义时,方法的上面必须添加@classmethod)

定义格式:

class 类名:

          @classmethod

           def 方法名(cls,形参)

                    方法体

  类方法调用格式:

         类名.方法名(实参)  推荐使用方式

          对象名.方法名(实参)  不推荐使用方式

注:(1)类方法定义在类中,不属于某个对象的具体行为,可以被所有对象共同使用的行为

       (2)类方法中不允许使用实例变量和实例方法,实例方法中允许使用类变量和类方法,推荐使用类名调用

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

2.静态方法(静态方法在定义时,方法的上面必须添加@staticmethod)

定义格式:

  class 类名:

  @staticmethod

  def 方法名(形参):

    方法

调用格式:

  类名.方法名(实参(推荐)

  对象名.方法名(实参)   (不推荐

3.实例方法(也叫成员方法,用于描述对象的固有行为)

  class 类名:

  def 方法名(self,形参):

    方法

例如:下列方法中的eat()方法,即为实例方法
 

class Dog:
    类变量=值#定义在类中,不属于某个对象的特征,可以被所有的对象共同使用
    #构造方法,__init__方法创建对象时为对象初始化成员变量
    def __init__(self):
        self.name = None #成员变量:⽤于描述对象的固有状态或属性,也叫公有变量
        self.type = "小卷毛"
        self.color = None
        self.love_food = None
        self.eat_num = 0

    def __str__(self):#使用print函数打印输出对象到屏幕上时被调用
        return ("%s是【%s颜色】【%s类型】的小狗,喜欢吃【%s】"
                % (self.name, self.color, self.type, self.love_food))
    #实例方法,描述对象的固有行为
    def eat(self):
        self.eat_num += 1
        print("吃了%d波狗粮" % self.eat_num)


d = Dog()#实例化
d.name = "乔治" #赋值
d.color = "灰"
d.type = "马犬"
d.love_food = "狗粮"
print(d)
d.eat()

             

猜你喜欢

转载自blog.csdn.net/qq_40808154/article/details/88770826