我想使用typing模块的get_type_hints
方法来获取参数注释。然而,在Python3.6.8中,我遇到了这个问题。
a = typing.Optional[int]
type(a)
Out[13]: typing.Union
type(a) == typing.Union
Out[14]: False
type(a) == type(typing.Optional)
Out[23]: False
type(a) == type(typing.Optional[int])
Out[24]: True
repr(type(a))
Out[25]: 'typing.Union'
repr(typing.Union)
Out[26]: 'typing.Union'
除了比较不太符合Python风格的repr
之外,似乎没有通用的方法来判断类型是否为typing.Optional
。有什么技巧可以解决吗?
附注:在3.7中,有typing._GenericAlias
,它可以完美地工作。
isinstance(typing.Optional[int], type(typing.Union))
即可。 - juanpa.arrivillaga