在Python中,对象的许多“特殊”属性存储在__dict__
字典中,如__doc__
,__module__
(从我在实验中看到的)。
然而有些不是,__class__
。我的问题是究竟哪些属性没有存储在__dict__
中(甚至在某处记录了哪些?),为什么不存在?
答案 0 :(得分:3)
这取决于你所说的__dict__
。 Python有一个方法解析顺序(忽略多继承的乐趣)通过检查实例,然后是类,然后是父类,然后它的父类等等来工作......
例如,__class__
位于object.__dict__
- 这就是为什么它为所有类定义,因为它们从object
继承。