Присвоение и добавление в одну строку

Есть ли в 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
Другие вопросы по тегам