Junior — Middle
Објасните концепт метакласе и његову улогу у дефинисању класа у Python-у
sobes.tech АИ
Одговор од АИ
У 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 свим класама које је користе.