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