> Что такое dunder методы (магические методы) в Python (Python)

Уровень: junior · Роль: backend · Язык: Python · Категория: Технические вопросы

Компании: ProFinansy, ООО Диджитал Сектор Поддержка, К Технологии, ООО Бергманн Инфотех Групп Ост, ARX

Стек: Python

> Пример ответа

Dunder-методы (от англ. double underscore - двойное подчеркивание), также называемые магическими методами, - это специальные методы в Python, имена которых начинаются и заканчиваются двумя подчеркиваниями (например, __init__, __str__, __add__). Они позволяют переопределять поведение объектов для встроенных операций и функций языка.

Основное назначение - реализация протоколов Python (итерация, контекстные менеджеры, арифметика, сравнение и т.д.). Например:

  • __init__ - конструктор, вызывается при создании объекта.
  • __str__ - возвращает строковое представление для print() и str().
  • __len__ - возвращает длину для len().
  • __eq__ - определяет поведение оператора ==.
  • __enter__ и __exit__ - для работы с with.

Пример использования:

PYTHON
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self):
return f"Point({self.x}, {self.y})"
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y)
p1 = Point(1, 2)
p2 = Point(3, 4)
print(p1 + p2) # Point(4, 6)

Dunder-методы не вызываются напрямую (хотя технически это возможно), а срабатывают автоматически при использовании соответствующих операций. Они делают пользовательские классы более "питоничными", интегрируя их в стандартный синтаксис языка.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью