您可以使用文字类型来实现。
from typing_extensions import Literal# from typing import Literal # Python 3.8 or higherdef fun(b: int) -> Literal["a", "b", "c"]: if b == 0: return "a" if b == 1: return "b" return "d"
mypy能够将检出
return "d"为无效语句:
error: Incompatible return value type (got "Literal['d']",expected "Union[Literal['a'], Literal['b'], Literal['c']]")
Python 3.8
多亏了PEP
586,将
Literal是已经包含默认的Python
3.8
typing模块。



