我正在尝试键入hint一个walrus运算符表达式,即
while (var: int := some_func()): ...
我该怎么做?
这是不可能的。来自PEP 572
不支持内联类型注释:
您需要在while
循环之前声明变量,并且可以在那里指定类型。
var: int
while var := some_func():
...
我认为你做不到。
变量可以被注释,因为赋值的语法规则是
assignment:
| NAME ':' expression ['=' annotated_rhs ]
...
请注意,类型提示在名称后面的:
和=
之间是显式的。
另一方面,赋值表达式only在:=
:之前提供了一个名称,而没有类型提示
named_expression:
| NAME ':=' ~ expression
| expression !':='