Python a-z

Twoje centrum interaktywnej nauki Pythona: fiszki, przykłady kodu i edytor w przeglądarce.

Poziom: zaawansowany Fiszka #102 · Python

Jak można zaimplementować "singleton" w Pythonie?

💡 Wskazówka do nauki: Zanim odsłonisz odpowiedź poniżej, spróbuj samodzielnie sformułować definicję lub napisać krótki przykład kodu w głowie (albo w naszym edytorze online).

Pokaż odpowiedź i przykład kodu

Opis i wyjaśnienie:

Można użyć modułu jako singletona, albo zastosować wzorzec projektowy z metaklasą lub dekoratorem.

Przykład w Pythonie:

class S:
    _inst = None
    def __new__(cls):
        if not cls._inst:
            cls._inst = super().__new__(cls)
        return cls._inst
print(S() is S())