可以通过输入可能的成员列表来创建枚举,我正在这样做:
# 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
中的任何值?
对于Mypy的静态类型检查,使用变量yummy_foods
太动态了,请参阅this GitHub issue。>
如果更改代码以生成Enum
为:
foods = enum.Enum("Foods", ["ham", "cheese"])
mypy然后将能够找出枚举中存在哪些属性。