В Python нет операции инкремента ++ как в си-подобных языках, поэтому используется x += 1. Однако запись ++x является валидным кодом (но не x++), так как это просто два унарных оператора сложения. При применении унарного плюса у объекта вызывается магический метод __pos__, сделаем небольшое отступление и разберем, что такое магический метод в сжатом варианте, что бы лучше понимать происходящие. Подробнее сделаю пост про магические методы в будущем.
Магические методы, или dunder-методы предназначены для перегрузки Python-операторов или встроенных методов. А нужны они, чтобы реализовывать свойства объектов при их взаимодействии и выделяется двумя нижними подчеркиваниями с обеих сторон (__). Вернемся к нашим баранам, магический метод __pos__ переопределяет унитарный оператор +, то есть запись ++x можно понять как x.__pos__().__pos__(). Зная это, можно реализовать класс, который будет представлять число и поддерживать поведение инкремента. class Number: ~def __init__(self, value): ~~s