【发布时间】:2021-06-21 09:49:13
【问题描述】:
我使用 pydantic 的类型提示为我的 Python API 设置返回模式。
我想编写一个允许数字 0 到 100 的文字类型。这很容易手动输入:
from typing import Literal
MyType = Literal[0, 1, 2, ... , 99, 100]
这不是特别pythonic,我正在寻找一种速记,本质上是:
Literal[range(101)]
不幸的是,上面的文字值是range(101)。我也试过:
Literal[list(range(101))]
Literal[0:101]
但是这些都失败了,因为 list 和 slice 是不可散列的类型。
如何在不输入数字 0 到 100 的情况下执行此操作?
【问题讨论】:
-
你试过解压清单吗?
-
如果我理解用例,您可以使用pydantic-docs.helpmanual.io/usage/types/#arguments-to-conint 并设置最小值和最大值
标签: python literals type-hinting pydantic