hwywhywl
2012-05-09 14:28:14 +08:00
1. MemberCounter 是 type 一个 实例,members 是 MemberCounter 一个属性,生成MemberCounter类的时候,其实是实例化 一个 type。
2. m2是MemberCounter实例,m2 和 MemberCounter 都有一个类似 __dict__ 的属性,
m2.members 查找过程:
(1) 如果 m2.__dict__ 中有名为 members 的key,则返回 m2.__dict__['members'],如果没有则进入(2)。
(2) 如果 MemberCounter.__dict__ 中有名为 members 的key,则返回 MemberCounter.__dict__['members'],如果没有则进入(3)。
(3) 如果m2没有定义__getatt__(self, name),则抛出attributeerror异常,如果定义有__getatt__(self, name) 则看它如何处理。