classmethod装饰器对应的函数不需要实例化,不需要self参数,但第一个参数需要是表示自身类的cls参数,可以来调用类的属性,类的方法,实例化对象等。
class Student():
def __init__(self, id, name):
self.id = "001"
self.name = "han"
def __repr__(self):
return 'id = '+self.id+', name = '+self.name
@classmethod
def fun(cls):
print("不需要实例化")
print(cls)
Student.fun() #不需要实例化,直接调用就可以
out:
不需要实例化
<class '__main__.Student'>