Одиночка (англ. Singleton) в программировании — порождающий шаблон проектирования.
Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.
Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.
class Singleton(object): __instance = None def __new__(cls): if cls.__instance is None: cls.__instance = super(C, cls).__new__(cls) else: cls.__init__ = lambda x: None return cls.__instance
Просмотрел массу решений, в том числе отсуда. В итоге больше понравилось одно из этих, его и опубликовал с небольшими изменениями.
UPD: А вот так еще краше получилось
class Singleton(object): def __new__(cls): if not hasattr(cls, 'instance'): cls.instance = super(Singleton, cls).__new__(cls) else: cls.__init__ = lambda x: None return cls.instance
Комментариев нет:
Отправить комментарий