Одиночка (англ. 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
Комментариев нет:
Отправить комментарий