如何使用typing模块来创建可以是某些字符串的类型?
例如假设我需要一个CondOperator
类型,可以是以下任何字符串:
['=', '>', '<', '>=', '<=', '<>', '!=']
我希望有CondOperator = String['=', '>', '<', '>=', '<=', '<>', '!=']
,但是String
中没有typing
。所以这行不通。
如何定义这种类型?
Python 3.8在Literal
中引入了typing
类型。也可以通过早期版本的Python中的typing_extensions
包进行访问。使用Literal
,可以将类型定义为:
from typing import Literal
CondOperator = Literal['=', '>', '<', '>=', '<=', '<>', '!=']
mypy docs上的Literal
很不错。