在打字中使用管道符号。文字字符串

问题描述 投票:0回答:1

我有一个函数接受特定参数的某些文字:

from typing import Literal

def fn(x: Literal["foo", "bar", "foo|bar"]) -> None:
    reveal_type(x)

第三个包含管道符号(

|
),
"foo|bar"
。这被
mypy
解释为错误,因为名称
foo
未定义。

我猜发生这种情况是由于如何评估前向引用?我使用 Python 3.8:

from __future__ import annotations

有办法让这个工作成功吗?由于破坏了向后兼容性,我无法更改字符串,但目前,整个注释显示为

Any
,即它没有任何价值。

python mypy python-typing typechecking
1个回答
1
投票

此错误现已修复。然而,更改尚未发布。

© www.soinside.com 2019 - 2024. All rights reserved.