关于类方法无法获得任何实例变量,只能获得类的引用
课程中说:“因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。”这句话怎么理解?下面是我的理解不知道对不对。
非实例上调用是不能p1.how_many()这样调用吗?
p1 = Person('Bob')中p1是实例变量,"无法获得任何实例变量"是什么意思?
Person.how_many()是类的引用(类Person引用了how_many()方法这样子理解吗?)
课程中说:“因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。”这句话怎么理解?下面是我的理解不知道对不对。
非实例上调用是不能p1.how_many()这样调用吗?
p1 = Person('Bob')中p1是实例变量,"无法获得任何实例变量"是什么意思?
Person.how_many()是类的引用(类Person引用了how_many()方法这样子理解吗?)
2019-01-30
class Person(object): __count = 0 def __init__(self, name): self.name = name Person.__count += 1 @classmethod def get_name(self): return self.name @classmethod def how_many(cls): return cls.__count p1 = Person('Bob') print(p1.get_name())#这句代码报错:AttributeError: type object 'Person' has no attribute 'name'意思很明显了,这个类方法获取不到你创建的实力的属性变量,比如name,birth啊 并不意味着你创建的实例无法调用类方法 print(p1.how_many())
举报