抽象Enum值的python类型注释

问题描述 投票:1回答:1

我有一个枚举

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]。

如何解决这个问题?

python enums typing
1个回答
0
投票

你没有通过一个 实例EnumEnumSuggest.__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
© www.soinside.com 2019 - 2024. All rights reserved.