Одно имя для метода класса и метода экземпляра?
Я хотел бы сделать что-то вроде этого:
class X:
@classmethod
def id(cls):
return cls.__name__
def id(self):
return self.__class__.__name__
А теперь позвониid()
для класса или его экземпляра:
>>> X.id()
'X'
>>> X().id()
'X'
Очевидно, что этот точный код не работает, но есть ли подобный способ заставить его работать? Или любые другие обходные пути, чтобы получить такое поведение без слишком большого количества "хакерских" вещей?