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) #10p.num = p.num + 1print(p.num) #11print(Pclass.num) #10Pclass.age=12print(Pclass.age) #12print(p.age) #12p.xxx=555print(p.xxx) #555print(Pclass.xxx) #AttributeError: type object 'Pclass' has no attribute 'xxx'