TGViewer
Python Academy Python Academy @python_academy · 44.2K subscribers
Post #1187 14.7K
Инкремент с помощью __pos__

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

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

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

#магические_методы #__pos__
  • 👍 33
  • ❤ 4
  • 🔥 3
  • 😱 1
More from @python_academy
  1. Oct 5, 2026Корутины (Coroutines) В PEP 342 были представлены корутины, которые стали некой противопол…
  2. Oct 4, 2026Порядок разрешения методов В Python существует так называемый Method Resolution Order (MRO…
  3. Oct 3, 2026Полезные функции модуля itertools Модуль itertools - инструмент в Python для работы с итер…
  4. Oct 2, 2026Scrapy: Мощный инструмент для веб-скрапинга на Python Scrapy - это высокоэффективная библи…
  5. Oct 1, 2026⁠Упаковка параметров с помощью urlencode Довольно часто приходится работать с разнообразны…
  6. Sep 30, 2026Асинхронные запросы с aiohttp Модуль aiohttp представляет из себя асинхронный HTTP клиент/…
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 →