8 Синглтоны с использованием метаклассов

Синглтон - это шаблон, который ограничивает создание экземпляра класса одним экземпляром / объектом. Для получения дополнительной информации о питоных одноэлементных шаблонах проектирования, см здесь .

 class SingletonType(type):
    def __call__(cls, *args, **kwargs):
        try:
            return cls.__instance
        except AttributeError:
            cls.__instance = super(SingletonType, cls).__call__(*args, **kwargs)
            return cls.__instance

 
Класс MySingleton (объект): __metaclass__ = SingletonType класс MySingleton (metaclass = SingletonType): проход
 MySingleton() is MySingleton()  # True, only one instantiation occurs