5

我正在尝试输入提示海象运算符表达式,即

while (var: int := some_func()): ...

我怎样才能做到这一点?

4

2 回答 2

3

这是不可能的。来自PEP 572

不支持内联类型注释:

您需要在循环之前声明变量while,并且可以在那里指定类型。

var: int
while var := some_func():
    ...
于 2021-06-03T20:09:50.577 回答
1

我不相信你可以。

变量可以被注释,因为赋值的语法规则是

assignment:
    | NAME ':' expression ['=' annotated_rhs ] 

    ...

请注意,类型提示:在名称和=.

另一方面,赋值表达式提供名称,没有类型提示,位于:=

named_expression:
    | NAME ':=' ~ expression 
    | expression !':='
于 2021-06-03T20:12:38.503 回答