键入:定义只能是某些字符串的类型?

Rot*_*eti 3 python typing python-3.x

如何使用打字模块来创建可以是某些字符串的类型?

例如,假设我需要一个 type CondOperator,它可以是以下任何字符串:

['=', '>', '<', '>=', '<=', '<>', '!=']
Run Code Online (Sandbox Code Playgroud)

我一直希望CondOperator = String['=', '>', '<', '>=', '<=', '<>', '!='],但没有Stringtyping。所以这行不通。

如何定义这种类型?

Zec*_* Hu 6

Python 3.8Literaltyping. 也可以通过typing_extensions以前版本的 Python 中的包访问它。使用Literal,您可以将类型定义为:

from typing import Literal

CondOperator = Literal['=', '>', '<', '>=', '<=', '<>', '!=']
Run Code Online (Sandbox Code Playgroud)

mypy文档Literal是一个很好看的。