Python是个很灵活的语言,光看它的类和实例间属性的访问机制就可以看出这一点,不过这一点还真的不好理解,做了些测试之后我的理解是这样的:
实例在访问class属性时,先检索自己的names, 如果有的话就直接取出,没有的话就去找class的names里面找,找不到就是error啦
class Pclass(object):
"""docstring for Pclass"""
num = 10 def __init__(self):
super(Pclass, self).__init__() p = Pclass()
print(p.num) #
p.num = p.num + 1
print(p.num) #
print(Pclass.num) # Pclass.age=12
print(Pclass.age) #
print(p.age) # p.xxx=555
print(p.xxx) #
print(Pclass.xxx) #AttributeError: type object 'Pclass' has no attribute 'xxx'