Курс Python → Перегрузка операторов в Python
Перегрузка операторов в Python позволяет изменять поведение встроенных операторов таким образом, чтобы они могли работать с пользовательскими объектами. Это делает код более читаемым и удобным, так как позволяет использовать знакомые операторы для различных типов данных. Например, мы можем определить специальный метод __add__ для класса, который будет определять поведение оператора + для объектов этого класса.
Давайте рассмотрим пример с классом Vector, который представляет собой вектор в двумерном пространстве. Мы можем определить метод __add__ для этого класса, чтобы можно было складывать два вектора с помощью оператора +.
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
v1 = Vector(2, 3)
v2 = Vector(4, 5)
result = v1 + v2
print(result.x, result.y) # Выведет: 6 8
В этом примере метод __add__ определен для класса Vector, который принимает второй вектор в качестве аргумента и возвращает новый вектор, представляющий собой сумму двух векторов. Теперь мы можем использовать оператор + для складывания объектов класса Vector.
Перегрузка операторов не ограничивается только арифметическими операторами. Мы также можем перегрузить операторы сравнения, индексации, присваивания и другие операторы. Это позволяет гибко работать с объектами различных типов и упрощает написание кода. Помните, что перегрузку операторов следует использовать разумно и в соответствии с общепринятыми стандартами.
Другие уроки курса "Python"
- TON Smart Challenge #2: участие и подготовка
- Метод get() в Python
- Docstring в Python
- Функция divmod() в Python
- Обработка ошибок в Python
- Работа со словарями с defaultdict из collections
- Логические операторы в Python
- Проектирование Singleton с метаклассом
- Тестирование модели в PyTorch
- Операции с массивами в NumPy
- Декодирование строк в Python
- Модуль Antigravity в Python 3
- Утечки переменных цикла в Python 3.x
- Асинхронный код в Python
- Повторение элементов в Python
- Абстракции словарей и множеств в Python
- Поиск простых чисел
- Логирование с Logzero
- Настройка Cron
- f-строки в формате строк
- Функции map, filter и reduce
- Инверсия списков и строк в Python
- Работа с zip()
- Сортировка HTML-элементов
- Использование подчеркивания в REPL
- Объединение строк с помощью метода join
- Хешируемые ключи в Python
- Бесконечная проверка в Python
- Поиск повторов в списке
- Dict Comprehension в Python
- Метод rpow в Python
- Функция zip() в Python
- Объединение итераторов
- Лямбда-функции в Python
- globals и locals
- Отладчик pdb: начало работы
- Округление банкира в Python
- Вывод сложных структур данных с помощью pprint
- Работа с файлами в Python
- Создание объекта времени
- Построение графиков в Matplotlib
- Метод __iand__ для пользовательских классов
- Работа с очередями в Python
- История Python
- Просмотр атрибутов и методов класса















