Вопрос проверяет понимание объектной модели Python и умение настраивать поведение объектов.
Магические методы позволяют объектам вести себя как встроенные типы Python. Они вызываются автоматически интерпретатором. Чаще всего используют методы инициализации, строкового представления и сравнения. Это делает код более читаемым и удобным. Магические методы упрощают интеграцию пользовательских классов.
Магические методы — это специальные методы с двойными подчёркиваниями, которые управляют поведением объектов.
Определение:
Магические методы — это методы вида __method__, которые автоматически вызываются интерпретатором Python.
__init__ — инициализация объекта
__new__ — создание объекта (используется редко)
Пример:
class User:
def __init__(self, name):
self.name = name
__str__ — человекочитаемый вывод
__repr__ — отладочное представление
class User:
def __str__(self):
return self.name
__eq__
__lt__
__gt__
def __eq__(self, other):
return self.id == other.id
__len__
__getitem__
__contains__
Делают классы удобными в использовании
Позволяют использовать стандартные операторы
Повышают читаемость кода
Вывод:
Магические методы стоит реализовывать, когда объект должен вести себя как встроенный тип Python.