Инкремент с помощью __pos__
В Python нет операции инкремента
При применении унарного плюса у объекта вызывается магический метод
Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода
#магические_методы #__pos__
В Python нет операции инкремента
++
как в си-подобных языках, поэтому используется x += 1
. Однако запись ++x
является валидным кодом (но не x++
), так как это просто два унарных оператора сложения.При применении унарного плюса у объекта вызывается магический метод
__pos__
, то есть запись ++x
можно понять как x.__pos__().__pos__()
. Зная это, можно реализовать класс, который будет представлять число и поддерживать поведение инкремента.Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода
__pos__
. Если реализовать все остальные необходимо магические методы, то может получится полноценный класс числа, но в продакшне такие приколы лучше не писать.#магические_методы #__pos__
👍1
Магические методы
Магические методы — это специальные методы, которые начинаются и заканчиваются двойным подчеркиванием.
Такие методы вызываются не напрямую, а при определенном действии. Например, когда вы складываете два числа с помощью оператора
Встроенные классы имеют много реализованных магических методов по умолчанию. Для примера можете взглянуть на их количество у того же
На канале уже было довольно много постов про отдельные магические методы, вот некоторые из них:
— Инкремент с помощью __pos__
— Как работают арифметические операции
— Разница между __str__ и __repr__
Кстати, в английском магический метод еще часто называют dunder, сокращение от double underscore.
#magic
Магические методы — это специальные методы, которые начинаются и заканчиваются двойным подчеркиванием.
Такие методы вызываются не напрямую, а при определенном действии. Например, когда вы складываете два числа с помощью оператора
+
, вызывается метод __add__()
.Встроенные классы имеют много реализованных магических методов по умолчанию. Для примера можете взглянуть на их количество у того же
int
на картинке выше.На канале уже было довольно много постов про отдельные магические методы, вот некоторые из них:
— Инкремент с помощью __pos__
— Как работают арифметические операции
— Разница между __str__ и __repr__
Кстати, в английском магический метод еще часто называют dunder, сокращение от double underscore.
#magic
😱2
Инкремент с помощью __pos__
В Python нет операции инкремента
При применении унарного плюса у объекта вызывается магический метод
Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода
#магические_методы #__pos__
В Python нет операции инкремента
++
как в си-подобных языках, поэтому используется x += 1
. Однако запись ++x
является валидным кодом (но не x++
), так как это просто два унарных оператора сложения.При применении унарного плюса у объекта вызывается магический метод
__pos__
, то есть запись ++x
можно понять как x.__pos__().__pos__()
. Зная это, можно реализовать класс, который будет представлять число и поддерживать поведение инкремента.Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода
__pos__
. Если реализовать все остальные необходимо магические методы, то может получится полноценный класс числа, но в продакшне такие приколы лучше не писать.#магические_методы #__pos__
👍47👎9❤1🔥1
Инкремент с помощью __pos__
В Python нет операции инкремента
При применении унарного плюса у объекта вызывается магический метод
Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода
#магические_методы #__pos__
В Python нет операции инкремента
++
как в си-подобных языках, поэтому используется x += 1
. Однако запись ++x
является валидным кодом (но не x++
), так как это просто два унарных оператора сложения.При применении унарного плюса у объекта вызывается магический метод
__pos__
, то есть запись ++x
можно понять как x.__pos__().__pos__()
. Зная это, можно реализовать класс, который будет представлять число и поддерживать поведение инкремента.Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода
__pos__
. Если реализовать все остальные необходимо магические методы, то может получится полноценный класс числа, но в продакшне такие приколы лучше не писать.#магические_методы #__pos__
👍33❤4🔥3😱1