Sobes.tech
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ú.