Gleicher Name für Klassenmethode und Instanzmethode?
Ich würde gerne so etwas machen:
class X:
@classmethod
def id(cls):
return cls.__name__
def id(self):
return self.__class__.__name__
Und jetzt @ anrufid()
für die Klasse oder eine Instanz davon:
>>> X.id()
'X'
>>> X().id()
'X'
Offensichtlich funktioniert dieser genaue Code nicht, aber gibt es eine ähnliche Möglichkeit, ihn zum Laufen zu bringen? Oder irgendwelche anderen Workarounds, um ein solches Verhalten ohne zu viel "hacky" Zeug zu bekommen?