classmethod修饰符对应的函数不需要实例化,不需要self参数,但第一个参数需要是表示自身类的cls参数,可以来调用类的属性,类的方法,实例化对象等
class A(object):
bar = 1
def func1(self):
print ('foo')
@classmethod
def func2(cls):
print ('func2')
print (cls.bar)
cls().func1()
A.func2() #不需要实例化
执行上述代码,其输出结果为:
func2
1
foo
另外一个关于理解classmethod修饰符的示例:
class A(object):
# 属性默认为类属性(可以给直接被类本身调用)
num = "类属性"
# 1.实例化方法(必须实例化类之后才能被调用)
def func1(self): # self : 表示实例化类后的地址id
print("func1")
print(self)
# 2.类方法(