Я смотрел на это недавно.Я хотел иметь возможность написать Test.Fu
, где Fu
- это вычисляемое свойство.
Следующее работает с использованием объекта дескриптора:
class DeclareStaticProperty(object):
def __init__(self, method):
self.method = method
def __get__(self, instance, owner):
return self.method(owner())
class Test(object):
def GetFu(self):
return 42
Fu = DeclareStaticProperty(GetFu)
print Test.Fu # outputs 42
Обратите внимание, что за кадром выделен экземпляр Test
.