Mypy无法推断从列表变量创建的枚举

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

可以通过输入可能的成员列表来创建枚举,我正在这样做:

# example_issue.py
import enum

yummy_foods = ["ham", "cheese"]
foods = enum.Enum("Foods", yummy_foods)
cheese = foods.cheese

这看起来不错,并且运行正常,但mypy返回

example_issue.py:4: error: Enum() expects a string, tuple, list or dict literal as the second argument
example_issue.py:5: error: "Type[foods]" has no attribute "cheese"
Found 2 errors in 1 file (checked 1 source file)

mypy在这里做什么,为什么不能理解foods可以取yummy_foods中的任何值?

python enums mypy
1个回答
0
投票

对于Mypy的静态类型检查,使用变量yummy_foods太动态了,请参阅this GitHub issue。>

如果更改代码以生成Enum为:

foods = enum.Enum("Foods", ["ham", "cheese"])

mypy然后将能够找出枚举中存在哪些属性。

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