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.