source: study/Programming/Python/basic/类属性和类方法.md
类属性和类方法
类属性
类方法和静态方法
类方法
- 类属性就是针对类对象定义的属性
- 使用赋值语句在
class
关键字下方可以定义类属性 - 类属性用于记录与这个类相关的特征
- 使用赋值语句在
- 类方法就是针对类对象定义的方法
- 在类方法内部可以直接访问类属性或者调用其他的类方法
语法如下
@classmethod
def 类方法名(cls):
pass
- 类方法需要修饰器
@classmethod
来标识,告诉解释器这是一个类方法 - 类方法的第一参数应该是
cls
- 由哪一个类调用的方法,方法内的cls就是哪一个类的引用
- 这个参数和实例方法的第一个参数
self
类似 - 提示 使用其他名称也可以,不过习惯使用
cls
- 通过
类名.
调用类方法,调用方法时,不需要传递cls
参数 -
在方法内部
- 可以通过
cls
访问类的属性 - 也可以通过
cls
调用其他类的方法
- 可以通过
静态方法
- 在开发中,如果需要在类中封装一个方法,这个方法:
- 即不需要访问实例属性或者调用实例方法
- 也不需要访问类属性或者调用类方法
- 这个时候,可以把这个方法封装成一个静态方法
语法如下
@staticmethod
def 静态方法名():
pass
- 静态方法需要修饰器
@staticmethod
来标识,告诉解释器这是一个静态方法 - 通过类名,调用静态方法
不需要创建对象,通过
类名.静态方法名()
- 实例方法–方法内部需要访问实例属性
- 实例方法内部可以使用类名,访问类属性
- 类方法–方法内部只需要访问类属性
- 静态方法–方法内部,不需要访问实例属性和类属性