class Example(object):
def __init__(self):
pass
def instance_func(self):
pass
@classmethod
def cls_func(cls):
pass
@staticmethod
def static_func():
pass
Example.cls_func()
Example.static_func()
ex = Example()
ex.instance_func()
类方法可以和静态方法一样直接使用。
重要
cls指的是调用该函数的类,子类调用父类的cls方法,第一个参数cls是子类
class FatherClass(object):
name = "father class"
@classmethod
def cls_func(cls):
print(cls.name)
class SonClass(FatherClass):
name = 'son class'
@classmethod
def func(cls):
cls.cls_func()
SonClass.func()
son class
由此看来,cls可以看作一个普通参数,其参数值为调用该方法的类