代码
class MyClass:
Property1 = 1
创建一个具有dict的类MyClass:
>>> MyClass.__dict__
{'Property1': 1, '__doc__': None, '__module__': '__main__'}
注意键值对“Property1”:1.
当你说MyClass.Property1时,Python会在字段MyClass .__ dict__中查找关键字Property1,如果找到它,则返回相关联的值1.
>>> MyClass.Property1
1
当你创建一个类的实例时,
>>> mc = MyClass()
还创建了一个实例的dict:
>>> mc.__dict__
{}
注意这个dict是空的.当你说mc.Property1时,Python首先在mc .__ dict__中查找’Property1’键.因为它没有找到它,它看起来在mc的类的dict,即MyClass .__ dict__.
>>> mc.Property1
1
请注意,Python attribute access的故事还有更多(例如,我没有提到关于描述符的重要规则).但是,上面介绍了大多数常见的属性访问情况的规则.