Что знаешь про Singleton?
Этот вопрос проверяет знание паттерна проектирования Singleton, который ограничивает создание экземпляров класса только одним объектом.
Короткий ответ
Singleton — это паттерн проектирования, который гарантирует, что класс будет иметь только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру. Он используется, когда необходимо управлять единственным состоянием в приложении, например, для работы с конфигурациями или подключениями.
Длинный ответ
Паттерн Singleton используется для того, чтобы гарантировать, что у класса будет только один экземпляр. Это полезно, когда объект класса должен быть общим для всего приложения, например, при работе с базой данных или логированием.
Пример реализации Singleton:
class Singleton:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance
# Проверка
a = Singleton()
b = Singleton()
print(a is b) # True, оба объекта ссылаются на один и тот же экземплярСуществует несколько способов реализации Singleton в Python, включая использование метаклассов, декораторов или атрибутов класса.