我应该调用哪个方法来获取一个类的名称?
In [1]: class Test:
...: pass
...:
In [2]: Test.__name__
Out[2]: 'Test'
这不是一个方法,而是一个字段。该字段称为__name__
。class.__name__
会以字符串的形式给出类的名称。 object.__class__.__name__
会给出对象所属类的名称。
我同意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>
type
创建的新类和多个基类。 (例如:type('_'.join(x.__name__ for x in bases), bases, {})
) - Wesley Baugh从Python 3.3及以后的版本中,我们可以使用__qualname__
字段来表示类和函数。
与其他类中定义的嵌套对象不同,它与__name__
字段有所区别。
>>> class A:
class B:
pass
>>> A.B.__name__
'B'
>>> A.B.__qualname__
'A.B'
这可能非常有用。
在[8]中:str('2'.__class__)
输出[8]: "<type 'str'>"
在[9]中:str(len.__class__)
输出[9]: "<type 'builtin_function_or_method'>"
在[10]中:str(4.6.__class__)
输出[10]: "<type 'float'>"
或者,如之前所指出的那样,
在[11]中:4.6.__class__.__name__
输出[11]: 'float'
4.6.4.6.__class__.__name__
- Joe Hildebrand
type(object).__name__
。 - Hans Ginzel