Sobes.tech
Junior — Middle

Vysvětlete koncept metaklasy a její roli při definování tříd v Pythonu

sobes.tech AI

Odpověď od AI

V Pythonu je metaklasou třída, která vytváří jiné třídy. Jednoduše řečeno, třída je objekt a metaklasou je "třída pro třídy".

Ve výchozím nastavení jsou všechny třídy v Pythonu vytvářeny pomocí metaklas type. Metaklas určuje, jak přesně je třída vytvořena, jaké atributy a metody bude mít.

Role metaklas:

  • Řídit proces vytváření třídy (například automaticky přidávat metody nebo kontrolovat atributy).
  • Umožnit měnit chování tříd v době jejich definice.

Příklad použití metaklas:

class Meta(type):
    def __new__(cls, name, bases, dct):
        dct['greet'] = lambda self: f"Ahoj od {name}!"
        return super().__new__(cls, name, bases, dct)

class MyClass(metaclass=Meta):
    pass

obj = MyClass()
print(obj.greet())  # Vytiskne: Ahoj od {name}!

Zde metaklas přidává metodu greet ke všem třídám, které ji používají.