class A:
pass
a = A()
str(a.__class__)
Пример кода выше (при вводе в интерактивном интерпретаторе) будет выдавать '__main__.A'
, а не 'A'
, который создается, если вызывается атрибут __name__
. Путем простой передачи результата A.__class__
в конструктор str
анализ обрабатывается для вас. Однако вы также можете использовать следующий код, если хотите что-то более явное.
"{0}.{1}".format(a.__class__.__module__,a.__class__.__name__)
Такое поведение может быть предпочтительным, если у вас есть классы с одинаковыми именами, определенные в отдельных модулях.
Пример кода, представленный выше, был протестирован в Python 2.7.5.