自我的意义.__ dict__ =在课堂定义中的自我

时间:2016-10-03 13:22:41

标签: python

我正在尝试理解以下代码片段:

class Config(dict):
    def __init__(self):
        self.__dict__ = self

self.__dict__ = self的目的是什么?我认为它会覆盖默认的__dict__函数,只是简单地返回对象本身,但由于Config继承自dict,我无法找到与默认行为的任何差异。

2 个答案:

答案 0 :(得分:7)

将字典self分配给__dict__允许属性访问和项目访问:

>>> c = Config()
>>> c.abc = 4
>>> c['abc']
4

答案 1 :(得分:4)

根据Python Documentobject.__dict__为:

  

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

以下是示例示例:

>>> class TestClass(object):
...     def __init__(self):
...         self.a = 5
...         self.b = 'xyz'
... 
>>> test = TestClass()
>>> test.__dict__
{'a': 5, 'b': 'xyz'}