Как использовать Python без усилий?
Оператор и перегрузка функций в пользовательских классах Python
Многие, кто использовал оператор +
или умножение на *
со строковыми объектами в Python, будут знать, что их поведение отличается от поведения операторов с числами типа int
или float
:
Возможно, вы задались вопросом, почему один и тот же встроенный оператор или функция ведут себя по-разному для объектов разных классов. Это называется перегрузкой операторов или функций соответственно. В этой статье я расскажу вам о механизме этой перегрузки, чтобы вы могли применить её в собственных классах Python и сделать ваши объекты более питоническими.
Вы узнаете следующее:
- API, который обрабатывает операторы и встроенные функции в Python
- ”Секрет” работы
len()
и других встроенных функций - Как сделать ваши классы способными использовать операторы
- Как сделать ваши классы совместимыми с встроенными функциями Python
Кроме того, вы увидите пример класса, объекты которого будут совместимы с многими из этих операторов и функций. Итак, приступим!
Python Data Model
Предположим, у вас есть класс, представляющий онлайн-заказ с корзиной (списком) и покупателем (строкой или экземпляром другого класса, представляющего покупателя).
В другом случае мы можем захотеть добавить что-нибудь в корзину. Вновь начинающий Python-разработчик может подумать о реализации метода append_to_cart()
, который принимает товар и добавляет его в список корзины. Но вы можете настроить оператор +
таким образом, чтобы он добавлял новый товар в корзину.
Содержание
- Введение
- Что такое перегрузка операторов и функций
- Пример перегрузки операторов и функций
- Добавение операторов к пользовательским классам
- Работа со встроенными функциями
- Полный пример
- Заключение
Для указанных в статье конкретных методов, включите точные примеры кода и подробные объяснения для создания учебного материала по Python.