python函数进阶之闭包函数

函数闭包

闭包的定义

在函数的嵌套前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数的引用(内部函数的名字),
核心点是内部函数使用外部函数的变量,我们把这个构造叫做闭包
闭包的意义:函数被调用完,函数内的局部变量会被销毁,为了方便保存进行闭包操作

闭包的构成条件

  • 在函数嵌套的前提下形成
  • 内部函数使用了外部函数的变量
  • 外部函数返回了内部函数的引用(内部函数的名字)
def func_out(num1): # num1=110
	def func_inner(num2): # num2 = 120
		result = num1 + num2
		print(f"外部函数的值{num1},和内部函数的值{num2},相加的结果是{result}")
	# 外面的函数返回里面的函数名字(里面函数的引用)
	return func_inner
# 闭包函数的执行流程:10-----1----7
f = func_out(110) # f = func_inner
# 12----2---3----4
f(120) # f(120) = func_inner(120)
# 简写:func_out(110)=func_inner(120)
func_out(110)(120)

总结闭包的作用:

  • 闭包可以保存外部函数的变量,不会随着外部函数调用完就被销毁
  • 由于闭包引用了外部函数的变量,外部函数的变量并没有得到释放,会保存到内存进行消耗。
  • 函数的引用(函数的名字)可以进行传递,如果复制给一个变量,那么该变量加上括号()那么就可以进行调用指向的函数引用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值