我已经将函数的参数注释为
import typing
def f(x: typing.List[MyType]):
...
通过检查参数参数,我得到
x
的类型,即typing.GenericMeta
的实例,该实例正确打印为typing.List[MyType]
如何从该对象获取
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 - Python:获取 `typing.List`的类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47077329/