Назад к вопросам
Middle
2
Что-нибудь про паттерн Singleton можешь рассказать?
Компании, где спрашивали
BP
Ответ от нейросети
sobes.tech AI
Паттерн Singleton гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру.
В Python Singleton можно реализовать несколькими способами. Один из простых — использовать модуль, так как модули в Python по сути синглтоны. Но если нужен класс, можно сделать так:
class Singleton:
_instance = None
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super().__new__(cls)
return cls._instance
# Использование
s1 = Singleton()
s2 = Singleton()
print(s1 is s2) # True
Этот код гарантирует, что при создании нескольких объектов класса Singleton будет возвращён один и тот же экземпляр.