Sobes.tech
Junior — Middle

Můžete vysvětlit princip implementace vzoru singleton v Pythonu a jeho hlavní vlastnosti?

sobes.tech AI

Odpověď od AI

Vzor singleton v Pythonu je implementován tak, aby bylo zajištěno, že během celého běhu programu existuje pouze jedna instance třídy.

Jedním z nejjednodušších způsobů, jak ho implementovat, je použití třídy s privátním atributem instance a metodou, která vrací tuto jedinou instanci:

class Singleton:
    _instance = None

    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            cls._instance = super().__new__(cls)
        return cls._instance

# Použití
s1 = Singleton()
s2 = Singleton()
print(s1 is s2)  # True

Charakteristiky:

  • V Pythonu neexistuje vestavěný mechanismus pro omezení vytváření instancí, proto je singleton implementován ručně.
  • Použití metody new umožňuje kontrolu nad vytvářením objektu.
  • Singleton je užitečný pro správu globálního stavu, například konfigurací nebo připojení k databázi.
  • Je důležité pamatovat, že nadměrné používání singletonu může vést k problémům s testováním a údržbou kódu.