我看到了這個Borg Singleton模式代碼,但是我無法理解我如何將新成員添加到單例對象的附加到__shared_state = {}
字典中。瞭解Python中的Borg Singleton模式
這裏是辛格爾頓代碼
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
字典
不起作用。 'TypeError:不能設置內置/擴展類型的屬性'dict'' – ppperry
謝謝。寫字典和思考物體。傻我:) – nutmeg64