Rot*_*eti 3 python typing python-3.x
如何使用打字模块来创建可以是某些字符串的类型?
例如,假设我需要一个 type CondOperator
,它可以是以下任何字符串:
['=', '>', '<', '>=', '<=', '<>', '!=']
Run Code Online (Sandbox Code Playgroud)
我一直希望CondOperator = String['=', '>', '<', '>=', '<=', '<>', '!=']
,但没有String
在typing
。所以这行不通。
如何定义这种类型?
Python 3.8Literal
在typing
. 也可以通过typing_extensions
以前版本的 Python 中的包访问它。使用Literal
,您可以将类型定义为:
from typing import Literal
CondOperator = Literal['=', '>', '<', '>=', '<=', '<>', '!=']
Run Code Online (Sandbox Code Playgroud)
该mypy文档上Literal
是一个很好看的。