Moja klasa Pythona zawiera pewne zmienne, które wymagają pracy, aby obliczyć jej pierwszy raz. Kolejne wywołania powinny po prostu zwracać wstępnie obliczoną wartość.Pythoniczny sposób na pracę za pierwszym razem, gdy zmienna nazywa się
Nie chcę tracić czasu na wykonywanie tej pracy, chyba że są rzeczywiście potrzebne użytkownikowi. Czy istnieje zatem czysty sposób Python do wdrożenia tego przypadku użycia?
Moją pierwszą myślą było użyć właściwości(), aby wywołać funkcję po raz pierwszy, a następnie zastąpić zmienną:
class myclass(object):
def get_age(self):
self.age = 21 # raise an AttributeError here
return self.age
age = property(get_age)
Dzięki
Czy pytasz o zapamiętywanie? http://en.wikipedia.org/wiki/Memoizacja. Jest to dość powszechny wzorzec projektowania OO. –