Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从类型提示获取原始Python类型_Python_Python 3.x_Types_Type Hinting - Fatal编程技术网

从类型提示获取原始Python类型

从类型提示获取原始Python类型,python,python-3.x,types,type-hinting,Python,Python 3.x,Types,Type Hinting,我正在使用现代Python类型的提示,如Tuple[int,…]。 在某个地方,我需要从给定的类型提示变量中获取原始Python类型(tuple,list…)。例如: t = Tuple[int,...] # Get tuple from t 简单案例:类型[Type,…]: 导入键入 输入import Tuple,可选 t=元组[int,…] 键入。获取原点(t) >>>元组 键入.获取参数(t) >>>(int,省略号) 可选和嵌套:Optional[Type[Type,…]] AsO

我正在使用现代Python类型的提示,如
Tuple[int,…]
。 在某个地方,我需要从给定的类型提示变量中获取原始Python类型(
tuple
list
…)。例如:

t = Tuple[int,...]

# Get tuple from t
简单案例:
类型[Type,…]
导入键入
输入import Tuple,可选
t=元组[int,…]
键入。获取原点(t)
>>>元组
键入.获取参数(t)
>>>(int,省略号)
可选和嵌套:
Optional[Type[Type,…]]
As
Optional[T]
相当于
Union[T,None]
返回类似于
Union
。嵌套类型以相同的方式递归检索

t=可选[元组[int,…]
键入。获取原点(t)
>>>打字工会
键入.获取参数(t)
>>>(键入.Tuple[int,…],非类型)
typing.get_origin(typing.get_args(t)[0])
>>>元组

类型提示仅对静态代码分析有用。丹尼尔:除了这种特殊情况之外,没有什么用处。@Daniel:但是在执行静态代码分析时,如果有一种方便的方法从注释
tuple[int,float]
中获取
tuple
,那肯定会很有用。我想你会被一些粗糙的选项所困扰,比如解析
repr(t)
@Bakuriu:如果具体类型实际上对应于具体类型,则该函数可以很容易地为具体类型提供类型提示。例如,这些类型提示可以只提供一个
concrete\u type
属性。不过,似乎不存在这样的功能。一种可能的方法是使用
\uuuuuuuuuuuuuu
属性。如果存在,它的工作方式如下所示。目前,这并不适用于所有类型(例如,不适用于
元组
)。注意,这是一个未记录的内部特征,可能会在没有警告的情况下被破坏;-)另外,您永远不应该修改
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。