Можно ли самому писать магические методы в Python?

Рейтинг: 0Ответов: 1Опубликовано: 17.01.2023

Читаю книгу "Чистый Python". Там говорится о том, что свои магические методы не рекомендуется писать из-за возможной несовместимости с будущими версиями языка. Как быть, если на всяких Хабрах и прочих находятся статьи, которые доказывают обратное, при этом ссылок на литературу не дают. Можете, пожалуйста, подсказать. По возможности, с примерами и серьёзными источниками, стоит ли писать кастомные методы или нет.

Ответы

▲ 4Принят

Вот что говорит документация Python

* System-defined names, informally known as “dunder” names. These names are defined by the interpreter and its implementation (including the standard library). Current system names are discussed in the Special method names section and elsewhere. More will likely be defined in future versions of Python. Any use of * names, in any context, that does not follow explicitly documented use, is subject to breakage without warning.

Перевод на русский:

__ * __ Системно определенные имена, неофициально известные как «магические» имена. Эти имена определяются интерпретатором и его реализацией (включая стандартную библиотеку). Текущие имена систем обсуждаются в разделе «Имена специальных методов» и в других местах. Скорее всего, будет определено в будущих версиях Python. Любое использование имен __ * __ в любом контексте, которое не следует явно документированному использованию, может быть нарушено без предупреждения.

Можно сделать вывод, что создавать свои "магические" методы не рекомендуется.