¿El mismo nombre para classmethod y instancemethod?
Me gustaría hacer algo como esto:
class X:
@classmethod
def id(cls):
return cls.__name__
def id(self):
return self.__class__.__name__
Y ahora llamaid()
ya sea para la clase o una instancia de la misma:
>>> X.id()
'X'
>>> X().id()
'X'
Obviamente este código exacto no funciona, pero ¿hay alguna forma similar de hacerlo funcionar? ¿O alguna otra solución para obtener ese comportamiento sin demasiadas cosas "hacky"?