【发布时间】:2017-07-25 20:11:59
【问题描述】:
我看到了这个 Borg 单例模式代码,但我无法理解我添加到单例对象的新成员是如何附加到 __shared_state = {} 字典中的。
这里是单例代码
class Borg(object):
_shared_state = {}
def __new__(cls,*args,**kwargs):
obj = super(Borg,cls).__new__(cls,*args,**kwargs)
obj.__dict__ = cls._shared_state
return obj
class Child(Borg):
pass
if __name__ == '__main__':
borg = Borg()
another_borg = Borg()
print borg is another_borg
child = Child()
borg.only_one_var = "I'm the only one var"
print child.only_one_var
所以我的问题是,当对象 borg.only_one_var 被创建时,它是如何附加到 _shared_state 字典中的
【问题讨论】:
标签: python class oop design-patterns