Sobes.tech
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)

Методҳои ҷодугарӣ барои иҷрои намунаҳои тарҳрезӣ ва васеъ кардани имкониятҳои синфҳо васеъ истифода мешаванд.