如何获取具有类名称的字符串?

cla*_*hey 44 python

我可以用什么方法来获取类的名称?

Mr *_*ark 56

In [1]: class test(object):
   ...:     pass
   ...: 

In [2]: test.__name__
Out[2]: 'test'
Run Code Online (Sandbox Code Playgroud)


cla*_*hey 37

这不是一种方法,而是一个领域.该字段被调用__name__. class.__name__将类的名称作为字符串. object.__class__.__name__将给出对象类的名称.

  • 最好写成“类型(对象).__name__”。 (4认同)

Jon*_*age 11

我同意Mr.Shark,但是如果你有一个类的实例,你需要使用它的__class__成员:

>>> class test():
...     pass
...
>>> a_test = test()
>>>
>>> a_test.__name__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: test instance has no attribute '__name__'
>>>
>>> a_test.__class__
<class __main__.test at 0x009EEDE0>
Run Code Online (Sandbox Code Playgroud)


Aza*_*kov 5

Python 3.3开始,我们可以对类和函数使用__qualname__字段。

__name__它与嵌套对象的字段不同,例如在其他类中定义的类

>>> class A:
        class B:
            pass
>>> A.B.__name__
'B'
>>> A.B.__qualname__
'A.B'
Run Code Online (Sandbox Code Playgroud)

这可能非常有用。

进一步阅读