Можно ли использовать операторы на месте с оператором Python 3.8 «Морж»? - PullRequest
1 голос
/ 01 марта 2020

В Python 3.8 был введен оператор Walrus, позволяющий присваивать в качестве выражения.

Это означает, что мы можем заменить эти 2 оператора

a = 2
print(a)

на

print(a := 2)

Однако, Python также имеет назначение «на месте» с операторами, где, например, a = a * 3 эквивалентно a *= 3

Есть ли способ использовать «на месте» назначение оператора, в сочетании с назначением Walrus?

Для следующего кода

a *= 3
print(a)

Чтобы заново создать это с назначением Walrus, кажется, что вы должны сделать

print(a := a * 3)

Обе эти попытки поднимают SyntaxError

print(a :*= 3)
print(a *:= 3)

1 Ответ

0 голосов
/ 01 марта 2020

Сначала необходимо определить a:

print((a := 2)*3)

6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...