108

我真的对这个__dict__属性感到困惑。我已经搜索了很多,但我仍然不确定输出。

如果在对象、类或函数中使用此属性,有人可以从零开始解释它的使用吗?

4

1 回答 1

107

基本上它包含描述所讨论对象的所有属性。它可用于更改或读取属性。从文档中引用__dict__

用于存储对象(可写)属性的字典或其他映射对象。

请记住,Python 中的一切都是对象。当我说一切时,我指的是函数、类、对象等一切(你没看错,类。类也是对象)。例如:

def func():
    pass

func.temp = 1

print(func.__dict__)

class TempClass:
    a = 1
    def temp_function(self):
        pass

print(TempClass.__dict__)

将输出

{'temp': 1}
{'__module__': '__main__', 
 'a': 1, 
 'temp_function': <function TempClass.temp_function at 0x10a3a2950>, 
 '__dict__': <attribute '__dict__' of 'TempClass' objects>, 
 '__weakref__': <attribute '__weakref__' of 'TempClass' objects>, 
 '__doc__': None}
于 2013-11-11T13:24:25.163 回答