Junior — Middle
Paaiškinkite metaklasės sąvoką ir jos vaidmenį kuriant klases Python kalboje
sobes.tech AI
Atsakymas iš AI
Python'e metaklasė yra klasė, kuri kuria kitas klases. Paprastai tariant, klasė yra objektas, o metaklasė yra "klasė klasėms".
Pagal numatytuosius nustatymus, visos klasės Python'e yra sukurtos naudojant type metaklasę. Metaklasė nustato, kaip tiksliai kuriama klasė, kokie atributai ir metodai jai priklausys.
Metaklasės vaidmuo:
- Valdyti klasės kūrimo procesą (pavyzdžiui, automatiškai pridėti metodus arba tikrinti atributus).
- Leisti keisti klasių elgesį jų apibrėžimo metu.
Pavyzdys, kaip naudoti metaklasę:
class Meta(type):
def __new__(cls, name, bases, dct):
dct['greet'] = lambda self: f"Labas iš {name}!"
return super().__new__(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
obj = MyClass()
print(obj.greet()) # Išves: Labas iš {name}!
Čia metaklasė prideda metodą greet visoms klasėms, kurios ją naudoja.