我正在尝试理解以下代码片段:
class Config(dict):
def __init__(self):
self.__dict__ = self
行self.__dict__ = self
的目的是什么?我认为它会覆盖默认的__dict__
函数,只是简单地返回对象本身,但由于Config
继承自dict
,我无法找到与默认行为的任何差异。
答案 0 :(得分:7)
将字典self
分配给__dict__
允许属性访问和项目访问:
>>> c = Config()
>>> c.abc = 4
>>> c['abc']
4
答案 1 :(得分:4)
根据Python Document,object.__dict__
为:
用于存储对象(可写)属性的字典或其他映射对象。
以下是示例示例:
>>> class TestClass(object):
... def __init__(self):
... self.a = 5
... self.b = 'xyz'
...
>>> test = TestClass()
>>> test.__dict__
{'a': 5, 'b': 'xyz'}