Python 如何从类型别名确定类型?
声明别名Python 如何从类型别名确定类型?,python,python-3.x,type-hinting,Python,Python 3.x,Type Hinting,声明别名t1=typing.List[int]或t2=typing.List[double]后,如何从t1确定它是List[int]和t2确定它是List[double]?t1和t2是否有一些隐藏的属性或函数可以帮助您 以交互方式,您最有用的选项可能是 >>> t1 typing.List[int] 如果您想在程序中检查它,您可以查看诸如\uuuuu name\uuuuuuu、\uuuu参数\uuuuuuuuu,或者IsubClass是否将其报告为键入的子类。List: &g
t1=typing.List[int]
或t2=typing.List[double]
后,如何从t1
确定它是List[int]
和t2
确定它是List[double]
?t1
和t2
是否有一些隐藏的属性或函数可以帮助您 以交互方式,您最有用的选项可能是
>>> t1
typing.List[int]
如果您想在程序中检查它,您可以查看诸如\uuuuu name\uuuuuuu
、\uuuu参数\uuuuuuuuu
,或者IsubClass
是否将其报告为键入的子类。List
:
>>> t1.__name__
'List'
>>> t1.__parameters__
(<class 'int'>,)
>>> issubclass(t1, typing.List)
True
>>>t1.\u名称__
“列表”
>>>t1.\uuu参数__
(,)
>>>issubclass(t1,键入.List)
真的
您是指静态还是运行时?在运行时,使用与直接使用typing.List[int]
相同的方法进行操作。当然,我目前还不确定这种方式会是什么。我是说在运行时。如果我看到一些变量t,我能做些什么来确定t是一个类型化.List[int
]或类型化.List[double]
或类型化.List[something]
?啊,好的,这就是我要寻找的更多的属性,\u参数
属性。在什么情况下,\uuuuuu参数\uuuuu
会给出一个包含2个或更多内容的元组?Thanks@VuNguyen:对于具有多个类型参数的泛型,例如typing.Mapping[str,str]
。