标签:
例子:
class bird(object): feather = True # 父类 class chicken(bird): fly = False def __init__(self, age): self.age = age # 子类 summer = chicken(2) # 子类的对象 print(bird.__dict__) # 父类属性
{‘__dict__‘: <attribute ‘__dict__‘ of ‘bird‘ objects>, ‘__module__‘: ‘__main__‘, ‘__weakref__‘: <attribute ‘__weakref__‘ of ‘bird‘ objects>, ‘feather‘: True, ‘__doc__‘: None}
print(chicken.__dict__) # 子类属性
{‘fly‘: False, ‘__module__‘: ‘__main__‘, ‘__doc__‘: None, ‘__init__‘: <function __init__ at 0x2b91db476d70>}
print(summer.__dict__) #对象属性
{‘age‘: 2}
比如上面分为 object / bird / chicken / summer这四层。
当我们需要调用某个属性的时候,Python会一层层向上遍历,直到找到最近那个属性。
__class__ 和 __base__
__class__属性可以帮对象查询它的类;
__base__属性可以帮子类查询它的父类
下面两重方式互相等价:
summer.__dict__[‘age‘] = 3 print(summer.__dict__[‘age‘])
summer.age = 3 print(summer.age)
标签:
原文地址:http://www.cnblogs.com/skyEva/p/5468506.html