26. Специальные методы

Специальные методы в Python - это методы, которые отвечают за «стандартные» возможности объектов и вызываются автоматически при использовани этих возможностей. Например, выражение a + b, где a и b это числа, преобразуется в такой вызов a.__add__(b), то есть, специальный метод __add__ отвечает за операцию сложения. Все специальные методы начинаются и заканчиваются двойным подчеркиванием, поэтому на английском их часто называют dunder методы, сокращенно от «double underscore».

Примечание

Специальные методы часто называют волшебными (magic) методами.

Специальные методы отвечают за такие возможности как работа в менеджерах контекста, создание итераторов и итерируемых объектов, операции сложения, умножения и другие. Добавляя специальные методы в объекты, которые созданы пользователем, мы делаем их похожими на встроенные объекты.