首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取实例的类名?

获取实例的类名?
EN

Stack Overflow用户
提问于 2009-02-04 11:37:48
回答 7查看 1.3M关注 0票数 1.8K

如果我执行此操作的函数是派生实例的基类,我如何在Python中找到创建对象实例的类名?

我在想也许the inspect module可以帮到我,但它似乎没有给我想要的东西。由于没有解析__class__成员,我不确定如何获取这些信息。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-02-04 12:02:13

你试过这个类的__name__ attribute了吗?ie type(x).__name__会给你类名,我想这就是你想要的。

代码语言:javascript
复制
>>> import itertools
>>> x = itertools.count(0)
>>> type(x).__name__
'count'

如果您仍在使用Python2,请注意上述方法仅适用于new-style classes (在Python 3+中,所有类都是“新风格”的类)。您的代码可能会使用一些旧式的类。以下方法适用于这两种情况:

代码语言:javascript
复制
x.__class__.__name__
票数 2.3K
EN

Stack Overflow用户

发布于 2009-02-04 12:02:17

是否要将类的名称作为字符串?

代码语言:javascript
复制
instance.__class__.__name__
票数 491
EN

Stack Overflow用户

发布于 2009-02-04 11:42:32

type()

代码语言:javascript
复制
>>> class A:
...     def whoami(self):
...         print(type(self).__name__)
...
>>>
>>> class B(A):
...     pass
...
>>>
>>>
>>> o = B()
>>> o.whoami()
'B'
>>>
票数 147
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/510972

复制
相关文章

相似问题

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