首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从TypeVar中获取类型?

如何从TypeVar中获取类型?
EN

Stack Overflow用户
提问于 2021-05-19 22:38:53
回答 1查看 380关注 0票数 0

假设我有:

T= TypeVar('T',bound='Client')

现在,我想要一个函数,它获取类型T并返回' Client ',或者更好的是一个类客户机。

我怎么能在Python3.9中得到它呢?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-20 02:36:23

您可以通过来自typing_inspect.get_bound包的typing_inspect来做到这一点。它为类型注释的运行时检查提供了跨版本支持:

代码语言:javascript
运行
复制
>>> 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,您可以这样使用:

代码语言:javascript
运行
复制
>>> ref = typing_inspect.get_bound(T)
>>> ref._evaluate(globals(), globals(), set())
__main__.Foo
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67611787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档