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