Sobes.tech
Middle

Kokie magiški metodai yra Python?

sobes.tech AI

Atsakymas iš AI

Maginės Python metodai yra specialūs metodai, kurie prasideda ir baigiasi dvigubu pabraukimu (pavyzdžiui, __init__, __str__). Jie leidžia perrašyti įmontuotų operacijų elgesį ir integruotis su kalbos sintakse.

Pagrindinės maginių metodų grupės:

  • Objekto inicializacija ir kūrimas: __new__, __init__
  • Objekto reprezentacija: __str__, __repr__
  • Aritmetinės operacijos: __add__, __sub__, __mul__, __truediv__ ir kt.
  • Palyginimo operacijos: __eq__, __lt__, __gt__, __le__, __ge__, __ne__
  • Prieigos prie atributų valdymas: __getattr__, __setattr__, __delattr__
  • Iteratorių ir generatorių naudojimas: __iter__, __next__
  • Kontekstų valdytojai: __enter__, __exit__
  • Indeksavimas ir pjūviai: __getitem__, __setitem__, __delitem__
  • Objekto kvietimas kaip funkcijos: __call__

Pavyzdys — aritmetinio operatoriaus ir eilutės atvaizdavimo perrašymas:

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)

Maginiai metodai plačiai naudojami dizaino šablonų įgyvendinimui ir klasių galimybių plėtimui.