假设我有:
T= TypeVar('T',bound='Client')
现在,我想要一个函数,它获取类型T并返回' Client ',或者更好的是一个类客户机。
我怎么能在Python3.9中得到它呢?
谢谢。
发布于 2021-05-20 02:36:23
您可以通过来自typing_inspect.get_bound包的typing_inspect来做到这一点。它为类型注释的运行时检查提供了跨版本支持:
>>> class Foo: pass
>>> T = TypeVar("T", bound=Foo)
>>> typing_inspect.get_bound(T)
__main__.Foo
>>> T = TypeVar("T", bound="Foo")
>>> typing_inspect.get_bound(T)
ForwardRef('Foo')当bound设置为字符串时,返回的值是“前向引用”。我认为目前还没有一个公共API来对具体的类进行评估。有一个私有API,您可以这样使用:
>>> ref = typing_inspect.get_bound(T)
>>> ref._evaluate(globals(), globals(), set())
__main__.Foohttps://stackoverflow.com/questions/67611787
复制相似问题