我有一个枚举
from enum import Enum
class StrangeEventTypeVariants(Enum):
crew_training = "Crew training"
crew_travel = "Crew travel"
flight = "Flight"
maintenance = "Maintenance"
parking = "Parking"
流程类的抽象枚举和函数。
class EnumSuggest:
def __init__(self, enum: Enum):
self.variants = [{"id": member.name, "name": member.value} for member in enum]
def get_suggest(self, _):
return self.variants
但上面的注释不正确,因为
suggest = EnumSuggest(StrangeEventTypeVariants)
我得到了下一个林特警告
预期类型Enum,得到类型[StrangeEventTypeVariants]。
如何解决这个问题?
你没有通过一个 实例 的 Enum
到 EnumSuggest.__init__
;你正在通过一个 子类 的 Enum
. 类型提示应反映这一点。
class EnumSuggest:
def __init__(self, enum: Type[Enum]):
self.variants = [{"id": member.name, "name": member.value} for member in enum]
def get_suggest(self, _):
return self.variants