Как набрать подсказку с оператором моржа?
Я пытаюсь ввести намек на выражение оператора моржа, т.е.
while (var: int := some_func()): ...
Как я могу это сделать?
2 ответа
Это невозможно. От PEP 572
Аннотации встроенного типа не поддерживаются:
Вам нужно объявить переменную перед
while
цикл, и вы можете указать там тип.
var: int = 0
while var := some_func():
...
Я не верю, что ты сможешь.
Переменная может быть аннотирована, потому что грамматическое правило присваивания
assignment:
| NAME ':' expression ['=' annotated_rhs ]
...
Обратите внимание, что указание типа явным образом находится между
:
после имени и
=
.
С другой стороны, выражение присваивания предоставляет только имя, без указания типа, предшествующее
:=
:
named_expression:
| NAME ':=' ~ expression
| expression !':='