以前也发过介绍闭包的文章,今天学习一下如何在闭包中携带状态。
作者:Ethan
原文:https://funhacks.net/2016/11/17/closure/
闭包
在 Python 中,函数也是一个对象。因此,我们在定义函数时,可以再嵌套定义一个函数,并将该嵌套函数返回,比如:
from math import pow
def make_pow(n):
def inner_func(x): # 嵌套定义了 inner_func
return pow(x, n) # 注意这里引用了外部函数的 n
return inner_func # 返回 inner_func
上面的代码中,函数make_pow里面又定义了一个内部函数inner_func,然后将该函数返回。因此,我们可以使用make_pow来生成另一个函数:
|