【发布时间】:2015-05-26 03:27:30
【问题描述】:
我想在一个类中记住一个函数的结果:
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 你在这里得到了很好的答案。检查 Misandrist 的链接
标签: python memoization