一份python小笔记
lambda表达式:需要一个函数但又不想费神去命名一个函数的情况下使用(匿名函数)
lambda演算是一门学科,lambda表达式是lambda演算的很小的一部分
装饰器是闭包的一个语法糖
python的函数内,可以直接引用外部变量,但不能改写外部变量(使用global,nonlocal等除外)
闭包的作用:
闭包的最大特点是可以将父函数的变量与内部函数绑定,并返回绑定变量后的函数(也即闭包),此时即便生成闭包的环境(父函数)已经释放,闭包仍然存在,这个过程很像类(父函数)生成实例(闭包),不同的是父函数只在调用时执行,执行完毕后其环境就会释放,而类则在文件执行时创建,一般程序执行完毕后作用域才释放。
引用wiki:
在计算机科学中,闭包是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。