Dunder методы (сокращение от "double underscore") — это специальные функции в Python, которые окружены двойными подчёркиваниями (__) в начале и конце названия. Они зарезервированы Python и служат конкретным целям в языке.
Dunder методы обеспечивают перегрузку операторов и специальное поведение в объектах Python. Они позволяют разработчикам определить, как экземпляры пользовательских классов взаимодействуют со встроенными операциями и внутренними механизмами Python. Напрямую их вызывать не нужно — Python делает это автоматически.
__init__ — инициализирует новый экземпляр объекта с заданными атрибутами__new__ — создаёт новый экземпляр класса до вызова __init____del__ — выполняет очистку при удалении или уничтожении объекта__str__ — определяет строковое представление, возвращаемое str()__repr__ — определяет строковое представление для отладки__add__ — перегружает оператор + для пользовательских объектов__len__ — добавляет поддержку len() для пользовательских объектов__getitem__ — позволяет использовать синтаксис индексирования object[key]Важно понимать, что dunder методы отличаются от приватных методов (одиночное подчёркивание). Одиночное подчёркивание — это лишь соглашение об внутреннем использовании, тогда как двойное подчёркивание запускает механизм name mangling в Python, что делает их по-настоящему специальными и зарезервированными.
При создании пользовательских классов стоит реализовывать dunder методы, чтобы обеспечить понятное поведение и естественную интеграцию со встроенными операциями Python — и при этом никогда не вызывать их напрямую.
Dunder-методы вроде __add__ и __len__ предназначены для прямого вызова пользователями в своём коде, как обычные методы.
Новый — ещё не проверен сообществом
Вы