Пример порождающего паттерна singletoon на python
Основная мысль:
1. Гарантирует, что у класса есть только один экземпляр!
2. Предоставляет глобальную точку доступа (в отличии от переменных, их можно переписывать)
По сути нужно перекрыть метод, который создает объект __new__
class Singleton(object): def __new__(cls): # Перекрываем создание объекта класса if not hasattr(cls, 'instance'): cls.instance = super(Singleton, cls).__new__(cls) return cls.instance s = Singleton() print id(s) print s b = Singleton() print id(b) print b print (s is b) # Вывод: # 140425907838864 # <__main__.Singleton object at 0x7fb7745a9f90> # 140425907838864 # <__main__.Singleton object at 0x7fb7745a9f90> # True