如何使用赋值表达式和打字?

How to use Assignment expressions and typing?

PEP-0572 引入了赋值表达式功能。我很好奇如何将它与键入表达式一起使用?

让我们以 PEP 的页面为例:

if result := solution(xs, n):
    # use result

并添加我们要使用的值类型:

from typing import Dict
if result:Dict := solution(xs, n):
    # use result

它会因语法错误而失败。

有没有办法对此类表达式使用类型化?

PEP explicitly says:

Inline type annotations are not supported:

p: Optional[int] = None

# Closest equivalent is p: Optional[int] as a separate declaration

因此,对于您的示例:

from typing import Dict

result: Dict
if result := solution(xs, n):
    # use result