Sobes.tech
Junior — Middle

Magyarázza el, mi az a metaklasszis az objektum-orientált programozás kontextusában, és hogyan használják.

sobes.tech MI

Válasz az MI-től

A Pythonban a metaklassz egy olyan osztály, amely más osztályokat hoz létre. Egyszerűbben fogalmazva, egy osztály egy objektum, a metaklassz pedig egy "osztály az osztályok számára". Alapértelmezés szerint minden osztályt a type metaklassz segítségével hozunk létre.

A metaklasszok lehetővé teszik az osztályok létrehozási folyamatának irányítását: módosíthatják az attribútumokat, hozzáadhatnak metódusokat vagy ellenőrizhetik az osztály szerkezetét a definiálás során.

Példa egy metaklassz használatára, amely automatikusan hozzáad egy metódust az osztályhoz:

class AutoMethodMeta(type):
    def __new__(cls, name, bases, attrs):
        attrs['hello'] = lambda self: f"Helló {name}!
        return super().__new__(cls, name, bases, attrs)

class MyClass(metaclass=AutoMethodMeta):
    pass

obj = MyClass()
print(obj.hello())  # Kimenet: Helló MyClass!

A metaklasszok hasznosak keretrendszerek, ORM-ek és más eszközök létrehozásához, ahol szükséges az osztályok szerkezetének irányítása.