抽象枚举值的python类型注释

抽象枚举值的python类型注释,python,enums,typing,Python,Enums,Typing,我有一个枚举 from enum import Enum class StrangeEventTypeVariants(Enum): crew_training = "Crew training" crew_travel = "Crew travel" flight = "Flight" maintenance = "Maintenance" parking = "Parking" 以及处理抽象枚举的类的函数 class EnumSuggest:

我有一个枚举

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)
我接到下一个警告

预期类型枚举,获取类型[SquendEventTypeVariants]

如何修复它?

您没有将
Enum
的实例传递给
enumsimplic.\uuuu init\uuuu
;您正在传递
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
类枚举建议:
定义初始化(self,enum:Type[enum]):
self.variants=[{“id”:member.name,“name”:member.value}用于枚举中的成员]
def get_建议(自我,u):
返回self.variants
您没有将
Enum
的实例传递给
enumssuggest.\uuu_uu初始化
;您正在传递
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
类枚举建议:
定义初始化(self,enum:Type[enum]):
self.variants=[{“id”:member.name,“name”:member.value}用于枚举中的成员]
def get_建议(自我,u):

return self.variants
我猜您传递的是enum类,而不是enum实例,因此它声明该类不是enum[实例]您的代码工作正常。。。您能告诉我您是如何从Enum import导入
Enum
的,以及您使用的python版本是什么吗Enum@Anwarvic代码之所以有效,是因为Python不关心类型提示。我猜你传递的是enum类而不是enum实例,所以它声称该类不是enum[实例]。你的代码运行得很好。。。您能告诉我您是如何从Enum import导入
Enum
的,以及您使用的python版本是什么吗Enum@Anwarvic代码之所以有效,是因为Python不关心类型提示。门楣是这样的。