Mesmo nome para método de classe e método de instância?
Eu gostaria de fazer algo assim:
class X:
@classmethod
def id(cls):
return cls.__name__
def id(self):
return self.__class__.__name__
E agora ligueid()
para a classe ou uma instância dela:
>>> X.id()
'X'
>>> X().id()
'X'
Obviamente, esse código exato não funciona, mas existe uma maneira semelhante de fazê-lo funcionar? Ou qualquer outra solução alternativa para obter esse comportamento sem muita coisa "hacky"?