Сама программа небольшая, но там дважды вызывается конфигурационный класс для извлечения некоторых переменных, я подумал будет лучше сделать этот класс синглтоном, чтобы один раз проинициализировав эти переменные, последующие вызовы не затрагивают эти переменные а просто возвращают эти переменные, ну вобщем нашел одну реализацию этого паттерна - Borg, вот пример:
class Borg(object): __shared_state__ = {} def __init__(self): self.__dict__ = self.__shared_state__ class Singletone(Borg): def __init__(self, name=None): super(Singletone, self).__init__() if name: self.name = name obj1 = Singletone('Hello, Borg!") obj2 = Singletone() print(obj1.name, obj2.name)
obj1 = Singletone('Hello, Borg!") del(obj1) print(Singletone().name) # out -> Hello, Borg!