Python 闭包

85 阅读1分钟

一 序

  本文继续Python学习。

二 闭包

   如果在一个函数内部,嵌套了函数,这个内部函数对(非全局作用域)外部作用域的变量进行引用,那么这个内部函数称为闭包。

简单理解就是:返回值是函数的函数。

看个例子:

注意,不是返回的6,6,6.是应为每次print的时候并不是从foo从哪个头开始运行,而从之前的p接着运行。

zhangsan就相当于do,可以传参数what.

三  装饰器

接着上面的闭包,先来看个例子,就是把函数当做参数传给另一个函数。

换个写法,用@ 来运行之前的代码,@就是把当前的函数写的

带参数的装饰器,以log为例子:其中**kwargs是为了适配key:value的形式