meine Python-Klasse hat einige Variablen, die Arbeit erfordern, um das erste Mal zu berechnen, sie aufgerufen werden. Nachfolgende Aufrufe sollten nur den vorausberechneten Wert zurückgeben.Pythonic Weg nur Arbeit zu tun, erstmals eine Variable heißt
Ich möchte keine Zeit mit dieser Arbeit verschwenden, es sei denn, sie werden tatsächlich vom Benutzer benötigt. Gibt es also einen sauberen pythonischen Weg, um diesen Anwendungsfall zu implementieren?
Mein erster Gedanke war Eigentum() zu verwenden, eine Funktion zum ersten Mal aufrufen und dann die Variable außer Kraft setzen:
class myclass(object):
def get_age(self):
self.age = 21 # raise an AttributeError here
return self.age
age = property(get_age)
Dank
Fragen Sie nach Memoisierung? http://en.wikipedia.org/wiki/Memoization. Dies ist ziemlich häufig OO Design-Muster. –