Этот вопрос проверяет знание магических методов Python, которые позволяют управлять поведением объектов, таких как сложение, сравнение, или преобразование в строку.
Магические методы (dunder methods) — это специальные методы в Python, имена которых начинаются и заканчиваются двумя символами подчёркивания (например, __init__, __str__). Они позволяют определять, как объект реагирует на стандартные операции, такие как арифметика или сравнение, и управлять его поведением.
Магические методы дают возможность изменять поведение встроенных операций для пользовательских объектов. Например:
__init__: Конструктор класса.
__str__: Возвращает строковое представление объекта.
__add__: Определяет сложение объектов.
__len__: Определяет длину объекта.
Пример:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y)
def __str__(self):
return f"Point({self.x}, {self.y})"
p1 = Point(1, 2)
p2 = Point(3, 4)
print(p1 + p2) # Point(4, 6)
print(str(p1)) # Point(1, 2)Магические методы упрощают работу с объектами, делая их похожими на встроенные типы данных.