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