Что такое магические методы
Магическими методами называют методы, имена которых начинаются и заканчиваются двойным подчеркиванием. Магические они потому, что почти никогда не вызываются явно. Их вызывают встроенные функции или синтаксические конструкции. Например, функция 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