Sobes.tech
Middle

Ce metode magice există în Python?

sobes.tech AI

Răspuns de la AI

Metodele magice în Python sunt metode speciale care încep și se termină cu dublu underscore (de exemplu, __init__, __str__). Ele permit redefinirea comportamentului operațiilor încorporate și integrarea cu sintaxa limbajului.

Principalele grupuri de metode magice:

  • Inițializare și creare de obiecte: __new__, __init__
  • Reprezentarea obiectului: __str__, __repr__
  • Operații aritmetice: __add__, __sub__, __mul__, __truediv__ și altele.
  • Operații de comparare: __eq__, __lt__, __gt__, __le__, __ge__, __ne__
  • Controlul accesului la atribute: __getattr__, __setattr__, __delattr__
  • Iteratori și generatoare: __iter__, __next__
  • Gestionarea contextului: __enter__, __exit__
  • Indexare și tăieturi: __getitem__, __setitem__, __delitem__
  • Apelarea obiectului ca funcție: __call__

Exemplu de redefinire a operatorului aritmetic și a reprezentării în șir de caractere:

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)

Metodele magice sunt utilizate pe scară largă pentru implementarea modelelor de proiectare și extinderea capacităților claselor.