浅谈 Python 中的闭包与中间件封装
2019年10月22日 19:54
这两天看了一些中间件框架相关的代码,发现闭包的应用很多,由于之前对闭包这个概念似懂非懂,所以我借此机会学习了一番,然后把成果在此总结记录一下。
什么是闭包
闭包这个概念存在甚广,数学,拓扑学以及计算机科学中都有这个它的身影,虽然名称相同,但是在定义上还是有所区别。
在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。
光听概念会有些抽象,我们来用 Python 一步一步举例说明何谓闭包。
变量作用域
且看下面这个代码,x 作为函数 a 的局部变量,在函数外部是无法访问的。x 的变量作用域现在仅限函数内部。
def a():
x = 1
# NameError: name 'x' is not defined
print...剩余内容已隐藏
查看完整文章以阅读更多