小编fed*_*ber的帖子

在 Python 类型中将 enum 转换为 Literal 类型别名

有没有一种方法可以在Python中对函数或变量进行类型注释,从而允许从枚举的属性形成枚举或文字?

from enum import Enum
from typing import Literal


class State(str, Enum):
    ENABLED = "enabled"
    DISABLED = "disabled"

def is_enabled(state: State | Literal["enabled", "disabled"]) -> bool:
    if isinstance(state, str):
        state = State(state)
    return state == State.ENABLED
Run Code Online (Sandbox Code Playgroud)

换句话说,有没有一种方法可以获取别名而Literal["enabled", "disabled"]不必重写枚举的所有键?

python enums typing

10
推荐指数
1
解决办法
6302
查看次数

标签 统计

enums ×1

python ×1

typing ×1