Я хочу memoize результат функции в классе:как memoize результат функции в python?
class memoize:
def __init__(self, function):
self.function = function
self.memoized = {}
def __call__(self, *args):
try:
return self.memoized[args]
except KeyError, e:
self.memoized[args] = self.function(*args)
return self.memoized[args]
class DataExportHandler(Object):
...
@memoize
def get_province_id(self, location):
return search_util.search_loc(location)[:2] + '00000000'
def write_sch_score(self):
...
province_id = self.get_province_id(location)
, но это не работает, потому что он говорит мне, что get_province_id takes exactly 2 arguments(1 given)
как вы его используете? –
@XiaotianPei Я обновляю вопрос, я просто использую его в этом классе – roger
Возможный дубликат: http://stackoverflow.com/questions/1988804/what-is-memoization-and-how-can-i-use-it-in -python –