Obter o nome completo de uma classe Python (Python 3.3 ou superior)
Como posso obter o nome da classe, incluindo o caminho completo, a partir da raiz do módulo? Para Python 3.3 e superior?
Aqui está um exemplo de código Python:
class A:
class B:
class C:
def me(self):
print(self.__module__)
print(type(self).__name__)
print(repr(self))
x = A.B.C()
x.me()
Esse código me gera no Python 3.3:
__main__
C
<__main__.A.B.C object at 0x0000000002A47278>
Então, Python sabe internamente que meu objeto é__main__.A.B.C
, mas como posso obter isso programaticamente? Eu posso analisarrepr(self)
, mas parece um hack para mim.