小编Sne*_*nga的帖子

如何从Python中的多个值列表创建typing.Literal

我有两个清单。我想创建一个Literal使用这两个列表

category1 = ["image/jpeg", "image/png"]
category2 = ["application/pdf"]

SUPPORTED_TYPES = typing.Literal[category1 + category2]
Run Code Online (Sandbox Code Playgroud)

有什么办法可以做到这一点吗?

我已经看到问题了输入:Dynamically Create Literal Alias from List of Valid Values但这对我的用例不起作用,因为我不想mimetype成为类型typing.Tuple

我将使用Literal在函数中使用 -

def process_file(filename: str, mimetype: SUPPORTED_TYPES)
Run Code Online (Sandbox Code Playgroud)

我尝试过的 -

supported_types_list = category1 + category2
SUPPORTED_TYPES = Literal[supported_types_list]
SUPPORTED_TYPES = Literal[*supported_types_list]

# this gives 2 different literals, rather i want only 1 literal
SUPPORTED_TYPES = Union[Literal["image/jpeg", "image/png"], Literal["application/pdf"]]    
Run Code Online (Sandbox Code Playgroud)

python type-hinting python-typing

5
推荐指数
1
解决办法
4204
查看次数

标签 统计

python ×1

python-typing ×1

type-hinting ×1