我已经将一个函数的参数注释为
import typing
def f(x: typing.List[MyType]):
...
通过检查参数参数,我得到了 x
的类型,它是 typing.GenericMeta
的一个实例,它被正确地打印为 typing.List [我的类型]
如何从该对象中获取List
和MyType
?
最佳答案
如果想获取MyType
,可以在.__args__
下找到:
import typing
def f(x: typing.List[MyType]):
...
print(f.__annotations__["x"].__args__[0]) # prints <class '__main__.MyType'>
List
(即 typing.List
)可从 .__base__
访问,实际列表类来自 .__orig_bases__
:
print(f.__annotations__["x"].__base__) # prints typing.List[float]
print(f.__annotations__["x"].__orig_bases__[0]) # prints <class 'list'>
关于Python:获取类型 `typing.List`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47077329/