类方法、静态方法
类方法
需要用 classmethod 来标识
对于类方法 第一个参数必须是类对象
一般以 cls 作为第一个参数
能够通过实例对象和类对象去访问
类方法还可以用来修改属性
代表的是当前类相关的信息的对象
类本身也是一个对象,有的地方也称之为类的元数据对象
静态方法
主要用来存放逻辑性的代码 主要是一些逻辑属于类
但是和类本身没有交互 即在静态方法中 不会涉及到类中的方法和属性的操作
可以理解为将静态方法存放在此类的名称空间中
静态方法中不需要额外的定义参数 因此在静态方法中引用类属性的话
必须通过类的实例对象来引用
class A(object):
__clsa = "A类属性" # 类属性只能在类方法下调用 格式: cls.属性
@classmethod
def a_cls(cls):
print("我是类方法")
@staticmethod # 静态方法使用场景 如果在方法中不会使用self 或者cls
def a_sta():
print("我是静态方法")
a = A()
# 类方法的调用
a.a_cls()
A.a_cls()
# 静态方法访问
# 01: 类名.静态方法名()
A.a_sta()
# 02:对象名.静态方法名()
a.a_sta()