Почему работает этот шаблон Python Borg / Singleton?
я просто наткнулся на сеть и нашел этот интересный код:
http://code.activestate.com/recipes/66531/
class Borg:
__shared_state = {}
def __init__(self):
self.__dict__ = self.__shared_state
# and whatever else you want in your class -- that's all!
Я понимаю, что такое синглтон, но я не понимаю, какой именно фрагмент кода. Не могли бы вы объяснить, как / где & quot; __ shared_state & quot; вообще что-то изменилось?
Я попробовал это в ipython:
In [1]: class Borg:
...: __shared_state = {}
...: def __init__(self):
...: self.__dict__ = self.__shared_state
...: # and whatever else you want in your class -- that's all!
...:
In [2]: b1 = Borg()
In [3]: b2 = Borg()
In [4]: b1.foo="123"
In [5]: b2.foo
Out[5]: '123'
In [6]:
но не могу полностью понять, как это могло произойти.