Что такое магические методы

Магическими методами называют методы, имена которых начинаются и заканчиваются двойным подчеркиванием. Магические они потому, что почти никогда не вызываются явно. Их вызывают встроенные функции или синтаксические конструкции. Например, функция len() вызывает метод __len__() переданного объекта. Метод __add__(self, other) вызывается автоматически при сложении оператором +.

Перечислим некоторые магические методы:

  • __init__: инициализатор класса
  • __add__: сложение с другим объектом
  • __eq__: проверка на равенство с другим объектом
  • __iter__: возвращает итератор

Oct. 10, 2023, Источник

Это специальные методы в python, обрамленные двумя нижними подчеркиваниями

  • Инициализация объекта: __init__
  • Строковые представления: __repr__ , __str__
  • Итерация: __iter__ , __next__ и другие

Oct. 10, 2023, Источник

  • Это специальные методы внутри класс, которые начинаются с двух нижних подчеркиваний и заканчиваются ими. Их еще называют (dunder методами)
  • Они берут на себя функционал и вызываются автоматически в определенный момент времени

Например, init вызывается сразу после создания объекта и отвечает за инициализацию

Oct. 10, 2023, Источник

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

Магические методы позволяют классам определять, как они должны реагировать на различные операции, такие как сложение (`+`), вычитание (`-`), вызов функции (`()`), получение длины (`len()`), преобразование в строку (`str()`) и многое другое.

Вот некоторые примеры магических методов и их предназначение:

  • `__init__(self, ...)`: Инициализация объекта. Вызывается при создании нового экземпляра класса.
  • `__str__(self)`: Преобразование объекта в строку. Вызывается функцией `str()` или при использовании объекта в функциях форматирования строк.
  • `__repr__(self)`: Представление объекта. Вызывается функцией `repr()`, а также при использовании объекта в интерактивной оболочке.
  • `__add__(self, other)`: Сложение объектов. Вызывается при использовании оператора `+`.
  •  `__sub__(self, other)`: Вычитание объектов. Вызывается при использовании оператора `-`.
  •  `__len__(self)`: Получение длины объекта. Вызывается функцией `len()`.
  •  `__getitem__(self, key)`: Получение элемента по индексу или ключу. Вызывается при использовании оператора `[]`.

И это только несколько из множества магических методов, которые можно определить в классе. Использование магических методов делает классы более интегрированными с языком и позволяет использовать их встроенные функциональности более элегантным и естественным способом.

Feb. 16, 2024, easyoffer