关于类方法无法获得任何实例变量,只能获得类的引用
课程中说:“因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。”这句话怎么理解?下面是我的理解不知道对不对。
非实例上调用是不能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())举报