Sobes.tech
Middle+
54

Mesélj a Singletonról — mi az és hogyan valósítják meg?

Cégeket kérdeztek
devar

Válasz az MI-től

sobes.tech MI

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

Таким образом, при создании нового объекта проверяется, существует ли уже экземпляр, и если да — возвращается он.