MyPy 错误:不支持 PEP 695 类型别名

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

我尝试在 Python 中通过 MyPy 使用类型别名时遇到错误。这是我的代码的简化版本:

type IntList = list[int]  # This line causes the error

type OtherType = int      # This line causes the error

class test:
    pass

type SomeType = test      # This line causes the error

我使用的是 Python 3.12,据说它支持 PEP 695 类型别名。我是否做错了什么,缺少导入,或者 Mypy 对 PEP 695 的支持不完整?


编辑: 如果我这样做的话,看起来我不会从 MyPy 得到任何错误。

IntList: TypeAlias = list[int]

OtherType: TypeAlias = int

class test:
    pass

SomeType: TypeAlias = test

编辑: 如何在 Python 中为类型添加别名?

这是因为Python 3.9+中的选项吗?

python mypy python-typing python-3.12
1个回答
0
投票

PEP 695 尚未在 mypy 中实现(如错误消息所述),问题跟踪如下: https://github.com/python/mypy/issues/15238

因此,您可以在 Python 3.12 中使用

type x = y
并且解释器可以工作,但它不能使用 mypy 检查类型。

请注意,即使在最新的 mypy 中实现它,在 Python 3.11 上运行的 mypy 也可能不支持它。因此这些别名不会在任何承诺支持 3.11 的地方使用。

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