Какой метод я могу вызвать, чтобы получить имя класса?
Как получить строку с именем класса?
Ответ 1
In [1]: class test(object):
...: pass
...:
In [2]: test.__name__
Out[2]: 'test'
Ответ 2
Это не метод, это поле. Поле называется __name__
. class.__name__
даст имя класса как строку. object.__class__.__name__
даст имя класса объекта.
Ответ 3
Я согласен с 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>
Ответ 4
В [8]: str('2'.__class__)
Out [8]: "<type 'str'>"
В [9]: str(len.__class__)
Out [9]: "<type 'builtin_function_or_method'>"
В [10]: str(4.6.__class__)
Out [10]: "<type 'float'>"
Или, как указывалось ранее,
В [11]: 4.6.__class__.__name__
Out [11]: 'float'
Ответ 5
Начиная с Python 3.3 и далее мы можем использовать поле __qualname__
для обоих классов и функций.
Он отличается от поля __name__
для вложенных объектов, таких как класс, определенный в другом классе
>>> class A:
class B:
pass
>>> A.B.__name__
'B'
>>> A.B.__qualname__
'A.B'
что может быть весьма полезным.