Junior — Middle
Selgitage metaklassi kontseptsiooni ja selle rolli Python klasside määratlemisel
sobes.tech AI
Vastus AI-lt
Pythonis on metaklass, mis on klass, mis loob teisi klasse. Lihtsustatult, klass on objekt ja metaklass on "klass klasside jaoks".
Vaikimisi luuakse kõik klassid Pythonis type metaklassi abil. Metaklass määrab, kuidas täpselt klass luuakse, millised atribuudid ja meetodid tal on.
Metaklassi roll:
- Hallata klassi loomise protsessi (näiteks automaatselt meetodite lisamine või atribuutide kontrollimine).
- Lubada muuta klasside käitumist nende defineerimise ajal.
Näide metaklassi kasutamisest:
class Meta(type):
def __new__(cls, name, bases, dct):
dct['greet'] = lambda self: f"Tere {name}-st!"
return super().__new__(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
obj = MyClass()
print(obj.greet()) # Väljund: Tere {name}-st!
Siin lisab metaklass kõigile klassidele, mida see kasutab, meetodi greet.