Junior — Middle
Magyarázza el a metaklass fogalmát és szerepét a Python osztályainak meghatározásában
sobes.tech MI
Válasz az MI-től
Pythonban a metaklass egy olyan osztály, amely más osztályokat hoz létre. Egyszerűbben fogalmazva, az osztály egy objektum, a metaklass pedig "osztály az osztályok számára".
Alapértelmezés szerint minden osztály Pythonban a type metaklasszal jön létre. A metaklass meghatározza, pontosan hogyan jön létre az osztály, milyen attribútumokkal és metódusokkal rendelkezik.
A metaklass szerepe:
- Az osztály létrehozási folyamatának kezelése (például automatikusan metódusokat ad hozzá vagy ellenőrzi az attribútumokat).
- Az osztályok viselkedésének módosítása azok definiálásakor.
Metaklass használatának példája:
class Meta(type):
def __new__(cls, name, bases, dct):
dct['greet'] = lambda self: f"Üdvözlet {name}-től!"
return super().__new__(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
obj = MyClass()
print(obj.greet()) # Kiírja: Üdvözlet {name}-től!
Ebben a példában a metaklass hozzáadja a greet metódust minden osztályhoz, amelyet használ.