Junior — Middle
Обяснете концепцията за метаклас и ролята й при определянето на класове в Python
sobes.tech AI
Отговор от AI
В Python метакласът е клас, който създава други класове. По-просто казано, класът е обект, а метакласът е "клас за класове".
По подразбиране всички класове в Python се създават с помощта на метакласа type. Метакласът определя как точно се създава класът, какви атрибути и методи ще има.
Ролята на метакласа:
- Управление на процеса на създаване на клас (например, автоматично добавяне на методи или проверка на атрибути).
- Позволява промяна на поведението на класовете по време на тяхното определяне.
Пример за използване на метаклас:
class Meta(type):
def __new__(cls, name, bases, dct):
dct['greet'] = lambda self: f"Здравей от {name}!"
return super().__new__(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
obj = MyClass()
print(obj.greet()) # Ще изведе: Здравей от {name}!
Тук метакласът добавя метода greet към всички класове, които го използват.