python中的闭包

本文详细解析了Python中闭包的概念,通过实例演示了闭包的使用方式及其作用,包括如何利用闭包保存函数状态和根据外部变量产生动态结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、闭包的概念

闭包指函数的嵌套。可以在函数内部定义一个嵌套的函数,将嵌套的函数视为一个对象,并将嵌套函数作为返回结果返回。

二、测试代码

def test_closure(x):
print("=1=")
def closure_add(y,z):
print("=2=")
return x+y+z
print("=3=")
return closure_add #返回函数对象,注意没有小括号

result = test_closure(1) #first

print(result(2,3)) #second
print(result(3,4)) #third

三、测试结果

(由于csdn编辑器问题,导致下图运行结果中的‘=’号和代码中的不一样)
在这里插入图片描述

结果分析:
1、python解释器执行#first时,遇到函数test_closure中定义的函数closure_add并不进入,而是直接跳过。
2、执行到#second时,会进入闭包函数closure_add中,在#first时已经给x赋值为1,所以该句的结果相当于执行1+2+3,结果为6.
3、执行#third时,类似执行#second,相当于执行1+3+4,结果为8.

四、闭包的作用

1、保持函数始终给予上一次的执行结果,例如测试代码中的#second和#third是基于#first的结果不变。
2、根据外部变量的每次不同得到不同的结果,#second和#third传入的值不同,得到的结果也不同。

说明:python新手,如有错误,请多指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值