python 为什么实例对象可以调用类方法?
classPerson():def__init__(self):pass@classmethoddefrun(cls):print('run')man=Person()#...
class Person():
def __init__(self):
pass
@classmethod
def run(cls):
print('run')
man = Person()#创建实例
man.run()
Person.run()
查资料是:类对象自动传入cls变量
所以Person.run()可以调用run我可以理解,但是实例man为什么能调用run?
run并没有self变量啊。
我猜想cls可能和self的本质一样,man也像Person一样被传入了cls。但是感觉哪里不太对劲,有没有大神能够解释清楚的。 展开
def __init__(self):
pass
@classmethod
def run(cls):
print('run')
man = Person()#创建实例
man.run()
Person.run()
查资料是:类对象自动传入cls变量
所以Person.run()可以调用run我可以理解,但是实例man为什么能调用run?
run并没有self变量啊。
我猜想cls可能和self的本质一样,man也像Person一样被传入了cls。但是感觉哪里不太对劲,有没有大神能够解释清楚的。 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询