Sobes.tech
Back to questions
Middle
1

Что-нибудь про паттерн Singleton можешь рассказать?

Companies where asked
BP

Answer from AI

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 будет возвращён один и тот же экземпляр.