TGViewer
Python академия Python академия @pythonofff · 7.13K subscribers
Post #2141 1.13K
Инкремент с помощью __pos__

В Python нет операции инкремента ++ как в си-подобных языках, поэтому используется x += 1. Однако запись ++x является валидным кодом (но не x++), так как это просто два унарных оператора сложения.

При применении унарного плюса у объекта вызывается магический метод __pos__, то есть запись ++x можно понять как x.__pos__().__pos__(). Зная это, можно реализовать класс, который будет представлять число и поддерживать поведение инкремента.

Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода __pos__. Если реализовать все остальные необходимо магические методы, то может получится полноценный класс числа, но в продакшне такие приколы лучше не писать.

Подписывайтесь на канал 👉@pythonofff
  • ❤ 1
  • 👍 1
More from @pythonofff
  1. Oct 5, 2026Очистка элементов в последовательности Встроенный модуль itertools был создан для работы с…
  2. Oct 2, 2026Как вывести все методы класса в Python? Для того, чтобы вывести все методы класса, Вы може…
  3. Sep 30, 2026Функции высшего порядка Функции высшего порядка - функции принимающие или возвращающие дру…
  4. Sep 27, 2026Конструктор класса У классов практически во всех языках есть конструкторы — это такие спец…
  5. Sep 24, 2026Анонимные функции Часто функции нужны только один раз, причем короткие. И избыточно создав…
  6. Sep 23, 2026Бесконечные списки Мы уже рассказывали про важность копирования списков. Но именно из-за т…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →