Оператор инкрементного присваивания += в Python 👨💻 Мы на STEPIK: https://stepik.org/course/192296/promo?utm_source=dzen
Python. Инкремент с помощью __pos__
В Python нет операции инкремента ++ как в си-подобных языках, поэтому используется x += 1. Однако запись ++x является валидным кодом (но не x++), так как это просто два унарных оператора сложения. При применении унарного плюса у объекта вызывается магический метод __pos__, то есть запись ++x можно понять как x.__pos__().__pos__(). Зная это, можно реализовать класс, который будет представлять число и поддерживать поведение инкремента...
Python. Инкремент с помощью __pos__
В Python нет операции инкремента ++ как в си-подобных языках, поэтому используется x += 1. Однако запись ++x является валидным кодом (но не x++), так как это просто два унарных оператора сложения. При применении унарного плюса у объекта вызывается магический метод __pos__, сделаем небольшое отступление и разберем, что такое магический метод в сжатом варианте, что бы лучше понимать происходящие. Подробнее сделаю пост про магические методы в будущем.
Магические методы, или dunder-методы предназначены для перегрузки Python-операторов или встроенных методов. А нужны они, чтобы реализовывать свойства...