Junior — Middle
Vysvetlite koncept metaklasy a jej úlohu pri definovaní tried v Pythone
sobes.tech AI
Odpoveď od AI
V Pythone je metaklasa trieda, ktorá vytvára iné triedy. Jednoducho povedané, trieda je objekt a metaklasa je "trieda pre triedy".
Predvolene sú všetky triedy v Pythone vytvorené pomocou metaklas type. Metaklas určuje, ako presne je trieda vytvorená, aké atribúty a metódy bude mať.
Úloha metaklas:
- Riadiť proces vytvárania triedy (napríklad automaticky pridávať metódy alebo kontrolovať atribúty).
- Umožniť meniť správanie tried počas ich definície.
Príklad použitia 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()) # Vypíše: Ahoj od {name}!
Tu metaklas pridáva metódu greet ku všetkým triedam, ktoré ju používajú.