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í.