如何Literal[]
从 from中获取文字值typing
?
from typing import Literal, Union
Add = Literal['add']
Multiply = Literal['mul']
Action = Union[Add,Multiply]
def do(a: Action):
if a == Add:
print("Adding!")
elif a == Multiply:
print("Multiplying!")
else:
raise ValueError
do('add')
上面的代码类型检查 since'add'
是 type Literal['add']
,但在运行时,它会引发一个 ValueError 因为字符串'add'
与 不同typing.Literal['add']
。
如何在运行时重用我在类型级别定义的文字?