Sobes.tech
Junior — Middle

Izskaidrojiet metaklasu jēdzienu un tās lomu Python klases definēšanā

sobes.tech AI

Atbilde no AI

Pythonā metaklase ir klase, kas rada citas klases. Vienkārši sakot, klase ir objekts, bet metaklase ir "klase klasēm".

Pēc noklusējuma, visas klases Pythonā tiek veidotas ar type metaklasi. Metaklase nosaka, kā tieši tiek veidota klase, kādi atribūti un metodes tai būs.

Metaklases loma:

  • Vadīt klases veidošanas procesu (piemēram, automātiski pievienot metodes vai pārbaudīt atribūtus).
  • Ļaut mainīt klases uzvedību to definēšanas laikā.

Piemērs, kā izmantot metaklasi:

class Meta(type):
    def __new__(cls, name, bases, dct):
        dct['greet'] = lambda self: f"Sveiciens no {name}!"
        return super().__new__(cls, name, bases, dct)

class MyClass(metaclass=Meta):
    pass

obj = MyClass()
print(obj.greet())  # Izdrukās: Sveiciens no {name}!

Šeit metaklase pievieno metodi greet visām klasēm, kuras to izmanto.