Sobes.tech
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 свим класама које је користе.