抽象枚举值的python类型注释

2024-09-28 05:17:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个枚举

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)

我接到下一个警告

Expected type Enum, got Type[StrangeEventTypeVariants]

如何修复它


Tags: nameselfdeftrainingenumclassmembersuggest
1条回答
网友
1楼 · 发布于 2024-09-28 05:17:57

您没有将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

相关问题 更多 >

    热门问题