нашел метод Борга:
__shared_state = {}
def __init__(self):
self.__dict__ = self.__shared_state
# that's all!
работает отлично - где бы я не создал объект - в нем всегда сохраняется состояние
таким образом допустим класс для работы с сетью - доступен во всех других классах с его индивидуальными настройками - достаточно лишь содать его объект: http = Http()
но я не понимаю как это все работает
вот мой код:
class Http():
__single = {}
url = ''
def __init__(self):
self.__dict__ = self.__single
def load(self):
print('http load url ' + self.url)
class Ac():
def test(self):
http = Http()
http.load()
http = Http()
http.url = 'google.ru'
ac = Ac()
ac.test() # выводит http load url google.ru
2 к примеру, меняем его url
3 создаем второй объект внутри Ac.test()
при этом init берет self.__single, который у нового объекта должен быть пуст - и помещает его в self.__dict__ - тоже делая его пустым!
как тогда сохраняются данные класса Http?