Middle
Кадом усулҳои ҷодугарӣ дар Python вуҷуд доранд?
sobes.tech AI
Ҷавоб аз AI
Методҳои ҷодугарӣ дар Python махсуси мебошанд, ки бо ду хати зерини оғоз ёфта ва бо ду хати зерини анҷом меёбанд (масалан, __init__, __str__). Онҳо имкон медиҳанд, ки рафтори амалҳои дарунсохтро баргардонанд ва бо синтаксиси забон ҳамҷоя созанд.
Гурӯҳҳои асосии методҳои ҷодугарӣ:
- Инициализация ва эҷоди объектҳо:
__new__,__init__ - Намояндагии объект:
__str__,__repr__ - Амалиётҳои арифметикӣ:
__add__,__sub__,__mul__,__truediv__ва дигарон. - Амалиётҳои муқоиса:
__eq__,__lt__,__gt__,__le__,__ge__,__ne__ - Назорати дастрасӣ ба хусусиятҳо:
__getattr__,__setattr__,__delattr__ - Итераторҳо ва генераторҳо:
__iter__,__next__ - Менеджерҳои контекст:
__enter__,__exit__ - Индексикунонию ва қисмҳо:
__getitem__,__setitem__,__delitem__ - Звон кардани объект ҳамчун функсия:
__call__
Масалан, баргардонидани оператори арифметикӣ ва намоиши сатрӣ:
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
def __repr__(self):
return f"Vector({self.x}, {self.y})"
v1 = Vector(1, 2)
v2 = Vector(3, 4)
print(v1 + v2) # Vector(4, 6)
Методҳои ҷодугарӣ барои иҷрои намунаҳои тарҳрезӣ ва васеъ кардани имкониятҳои синфҳо васеъ истифода мешаванд.