3 回答

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊
factorial_memo = {}def factorial(k): if k < 2: return 1 if k not in factorial_memo: factorial_memo[k] = k * factorial(k-1) return factorial_memo[k]
class Memoize: def __init__(self, f): self.f = f self.memo = {} def __call__(self, *args): if not args in self.memo: self.memo[args] = self.f(*args) #Warning: You may wish to do a deepcopy here if returning objects return self.memo[args]
def factorial(k): if k < 2: return 1 return k * factorial(k - 1)factorial = Memoize(factorial)
@Memoizedef factorial(k): if k < 2: return 1 return k * factorial(k - 1)
memoized
Memoize

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊
functools.lru_cache
maxsize
None
import functools@functools.lru_cache(maxsize=None)def fib(num): if num < 2: return num else: return fib(num-1) + fib(num-2)
fib(36)
lru_cache

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
memoised_function = memoise(actual_function)
@memoisedef actual_function(arg1, arg2): #body
添加回答
舉報(bào)