大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第55篇文章,第三阶段的课程:Python进阶知识:Python进阶知识:详细讲解Python中的函数(八)====> 函数的嵌套调用之闭包函数。
函数是非常重要的内容,在这里,我会用10篇左右的文章详细讲解Python中函数定义与使用的规则。
阅读提醒:建议小白先看一遍:【计算机基础知识】和【Python基础知识】课程,否则你不一定听得懂!
一、什么是闭包函数
1、什么是闭包函数
闭:就是封闭,指函数在定义在另一个函数内的函数,即一个函数是另一个函数的子函数;
包:就是包裹,指该函数包含对外层函数作用域的引用,即在该函数内又做了对上层函数的引用(非全局作用域)。
闭包函数是我们对前面所学的函数知识的综合运用;学会闭包函数,本质上我们并没有学习新的知识点。
闭包函数=名称空间与作用域+函数嵌套+函数对象;这三者的综合应用就是闭包函数。
举例说明:
在上面的例子中,无论在任何地方调用f这个函数,变量x的值永远都是10;这里充分说明了:函数中名字的查找关系是以函数定义阶段为准,无论在哪调用函数,都必须返回到函数定义阶段判断名字之间的关系。【重要】
2、定义闭包函数
闭包函数=名称空间与作用域+函数嵌套+函数对象;这三者的综合应用就是闭包函数。
闭包函数的本质就是装饰器;也可以说,装饰器的本质就是闭包函数。
def fun():
x = 111
def fun2():#函数定义在fun内,即闭
print(x) #函数内包含对外层函数作用域的引用,即包。
闭包函数,我们应该比较多的场景在于装饰器、以及一些公共方法上面;后面会详细讲关于装饰器的使用。
以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。
感谢您的阅读,您的三连【关注、点赞、收藏】就是对我最大的支持,谢谢!
本文由杨数Tos原创,欢迎关注,带你一起长知识。
领取专属 10元无门槛券
私享最新 技术干货