我使用现代Python类型提示,如Tuple[int,...]
。
某处我需要从给定的类型提示变量中获取原始Python类型(tuple
,list
...)。例如:
t = Tuple[int,...]
# Get tuple from t
答案 0 :(得分:1)
Type[type, ...]
:import typing
from typing import Tuple, Optional
t = Tuple[int,...]
typing.get_origin(t)
>>> tuple
typing.get_args(t)
>>> (int, Ellipsis)
Optional[Type[type, ...]]
Optional[T]
等效于Union[T, None]
,因此返回就像Union
。嵌套类型的递归检索方式相同。
t = Optional[Tuple[int,...]]
typing.get_origin(t)
>>> typing.Union
typing.get_args(t)
>>> (typing.Tuple[int, ...], NoneType)
typing.get_origin(typing.get_args(t)[0])
>>> tuple