source: study/Programming/Python/basic/类属性和类方法.md

类属性和类方法

类属性

类方法和静态方法

类方法

  • 类属性就是针对类对象定义的属性
    • 使用赋值语句在class关键字下方可以定义类属性
    • 类属性用于记录与这个类相关的特征
  • 类方法就是针对类对象定义的方法
    • 在类方法内部可以直接访问类属性或者调用其他的类方法

语法如下


@classmethod
def 类方法名(cls):
	pass

  • 类方法需要修饰器@classmethod来标识,告诉解释器这是一个类方法
  • 类方法的第一参数应该是cls
    • 由哪一个类调用的方法,方法内的cls就是哪一个类的引用
    • 这个参数和实例方法的第一个参数self类似
    • 提示 使用其他名称也可以,不过习惯使用cls
  • 通过类名.调用类方法,调用方法时,不需要传递cls参数
  • 在方法内部
    • 可以通过cls访问类的属性
    • 也可以通过cls调用其他类的方法

静态方法

  • 在开发中,如果需要在类中封装一个方法,这个方法:
    • 即不需要访问实例属性或者调用实例方法
    • 也不需要访问类属性或者调用类方法
  • 这个时候,可以把这个方法封装成一个静态方法

语法如下

@staticmethod
def 静态方法名():
	pass
  • 静态方法需要修饰器@staticmethod来标识,告诉解释器这是一个静态方法
  • 通过类名,调用静态方法

不需要创建对象,通过类名.静态方法名()


  1. 实例方法–方法内部需要访问实例属性
    1. 实例方法内部可以使用类名,访问类属性
  2. 类方法–方法内部只需要访问类属性
  3. 静态方法–方法内部,不需要访问实例属性和类属性