Sobes.tech
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-ро илова мекунад.