我试图理解下面的代码片段:含义类定义
class Config(dict):
def __init__(self):
self.__dict__ = self
什么是线self.__dict__ = self
的目的是什么?我想它会覆盖默认__dict__
函数与一些简单地返回对象本身,但因为Config
继承dict
我还没有能够找到任何与默认行为的差异。
我试图理解下面的代码片段:含义类定义
class Config(dict):
def __init__(self):
self.__dict__ = self
什么是线self.__dict__ = self
的目的是什么?我想它会覆盖默认__dict__
函数与一些简单地返回对象本身,但因为Config
继承dict
我还没有能够找到任何与默认行为的差异。
分配字典self
到__dict__
允许属性访问和项目的访问:
>>> c = Config()
>>> c.abc = 4
>>> c['abc']
4
我也测试了,这种行为需要自' .__ dict__ ='__init__'中的自我行(如果'Config'仅来自'dict',我得到'NameError'试图调用'c ['abc']')。 –
作为每Python Document,object.__dict__
是:
字典或用于存储一个对象的(可写入的其他映射对象)属性。
下面是示例例如:
>>> class TestClass(object):
... def __init__(self):
... self.a = 5
... self.b = 'xyz'
...
>>> test = TestClass()
>>> test.__dict__
{'a': 5, 'b': 'xyz'}
因为它'dict'I继承不明白它是什么试图做... – MMF