例子:
def cache(func): store = {} # 外部自由变量 @wraps(func) def _ (n): # 闭包函数 if n in store: return store[n] else: ret = func(n) store[n] = ret return ret return _ def f(n): if n<=1: return 1 return f(n-1) + f(n-2)
闭包:引用了外部自由变量的函数
自由变量:不在当前闭包函数定义的变量
特性:自由变量会和闭包函数同时存在