Python

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)    #10
p.num = p.num + 1
print(p.num)    #11
print(Pclass.num)   #10

Pclass.age=12
print(Pclass.age)   #12
print(p.age)    #12

p.xxx=555
print(p.xxx) #555
print(Pclass.xxx) #AttributeError: type object 'Pclass' has no attribute 'xxx'
原文地址:https://www.cnblogs.com/wancy86/p/Python_Class_instance_attributes.html