gpt4 book ai didi

python - PyCharm 类型提示枚举迭代

转载 作者:太空狗 更新时间:2023-10-29 21:59:11 27 4
gpt4 key购买 nike

Python 的枚举类支持迭代,但 PyCharm 无法解决这个问题。

from enum import Enum

class Color(Enum):
RED = 0
BLUE = 1

for color in Color:
# Warning: Expected 'collections.Iterable', got 'Type[Color]' instead
print(color)

虽然方法 EnumMeta.__iter__ 存在,但 PyCharm 无法解决这个问题。

我不介意手动添加类型提示来解决这个问题,我只是不确定是什么和在哪里。

最佳答案

也许这不是最干净的解决方案,但以下对我有用:

from enum import Enum
import typing

class Color(Enum):
RED = 0
BLUE = 1

Color = Color # type: typing.Union[typing.Type[Color], typing.Iterable]

PyCharm supports使用 PEP 484 中定义的格式键入提示(Python 3.5以下以注释形式,3.5以上以注解形式)。

这里需要注意的是,在低于 3.5 的 Python 版本中,应该以某种方式保护导入 typing 模块(PyCharm 将此导入识别为有效,即使没有 typing模块安装在站点包中,但是在运行代码时发生 ImportError

关于python - PyCharm 类型提示枚举迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48619709/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com