Рассмотрим следующий пример: минимальныйКак memoize свойство в Python?
class Foo(object):
def __init__(self):
self.b = self.a = 1
@property
def sum(self):
print 'Recalculating sum'
return self.a + self.b
foo = Foo()
print foo.sum
print foo.sum # Prints 'Recalculating sum' even though neither a or b has changed since previous call
foo.a = 2
print foo.sum # a has been changed to 2 so recalculation is necessary
Я хотел бы memoize sum
такое, что если self.a
и self.b
не изменится, то мы не должны держать перерасчета собственность.
Свойство должно быть пересчитано только при изменении self.a
или self.b
- есть ли простой способ сделать это?