Присвоение и добавление в одну строку
Есть ли в Python эквивалент следующего?
ICMP_SEQUENCE_NUM = self.sequence_num ++
То есть сделать присвоитьICMP_SEQUENCE_NUM = self.sequence_num
, а после этого увеличить self.sequence_num
одним?
1 ответ
Решение
Хотя нет возможности выполнить операцию с постфиксом или префиксом напрямую, вы можете использовать новый оператор моржа :=
(выражение присваивания), чтобы приблизиться. Это возможно только в Python >= 3.8:
# works
self.sequence_num = (ICMP_SEQUENCE_NUM := self.sequence_num) + 1
Обратите внимание, что вы не можете использовать оператор моржа для атрибутов объекта, поэтому что-то вроде следующего невозможно
# does not work
ICMP_SEQUENCE_NUM = (self.sequence_num := self.sequence_num + 1) - 1