Назад к вопросам
Middle+
6
Что такое магические методы (dunder methods)? Почему они называются магическими?
Компании, где спрашивали
cleverbots
Ответ от нейросети
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__ — выводить их в удобочитаемом формате.