灵活的装饰器

# 如果fib函数执行次数过多时,通过装饰器来改进效率
# 我们可以用字典来保存计算过的结果,防止重复

def
memoize(f): memo = {} def helper(x): if x not in memo: memo[x] = f(x) return memo[x] return helper @memoize def fib(n): if n == 0: return 0 elif n == 1: return 1 else: return fib(n-1) + fib(n-2) def fib_seq(n): res = [] if n > 0: res.extend(fib_seq(n-1)) res.append(fib(n)) return res fib_seq(30)
原文地址:https://www.cnblogs.com/tangda/p/14775365.html