Sobes.tech
Back to questions
Middle+
5

Что такое магические методы (dunder methods)? Почему они называются магическими?

Companies where asked
cleverbots

Answer from AI

sobes.tech AI

Магические методы в Python — это специальные методы, имена которых начинаются и заканчиваются двойным подчёркиванием (например, __init__, __str__, __add__). Они называются "магическими", потому что позволяют изменять поведение объектов и классов на уровне языка, например, определять, как объект создаётся, преобразуется в строку, сравнивается или взаимодействует с операторами.

Пример:

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 __str__(self):
        return f"Vector({self.x}, {self.y})"

v1 = Vector(1, 2)
v2 = Vector(3, 4)
print(v1 + v2)  # Выведет: Vector(4, 6)

Здесь __add__ позволяет использовать оператор + для сложения объектов класса Vector, а __str__ — выводить их в удобочитаемом формате.