python 抽象枚举值的类型注释
python type annotations for abstract Enum value
我有一个枚举
from enum import Enum
class StrangeEventTypeVariants(Enum):
crew_training = "Crew training"
crew_travel = "Crew travel"
flight = "Flight"
maintenance = "Maintenance"
parking = "Parking"
和函数 class 处理抽象枚举
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)
我收到下一个 linter 警告
Expected type Enum, got Type[StrangeEventTypeVariants]
如何解决?
您没有将 Enum
的 实例 传递给 EnumSuggest.__init__
;您传递的是 Enum
的 子类 。类型提示应该反映出来。
class EnumSuggest:
def __init__(self, enum: <b>Type[</b>Enum<b>]</b>):
self.variants = [{"id": member.name, "name": member.value} for member in enum]
def get_suggest(self, _):
return self.variants
我有一个枚举
from enum import Enum
class StrangeEventTypeVariants(Enum):
crew_training = "Crew training"
crew_travel = "Crew travel"
flight = "Flight"
maintenance = "Maintenance"
parking = "Parking"
和函数 class 处理抽象枚举
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)
我收到下一个 linter 警告
Expected type Enum, got Type[StrangeEventTypeVariants]
如何解决?
您没有将 Enum
的 实例 传递给 EnumSuggest.__init__
;您传递的是 Enum
的 子类 。类型提示应该反映出来。
class EnumSuggest:
def __init__(self, enum: <b>Type[</b>Enum<b>]</b>):
self.variants = [{"id": member.name, "name": member.value} for member in enum]
def get_suggest(self, _):
return self.variants