python中的闭包
一、闭包的概念
闭包指函数的嵌套。可以在函数内部定义一个嵌套的函数,将嵌套的函数视为一个对象,并将嵌套函数作为返回结果返回。
二、测试代码
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新手,如有错误,请多指教!
本文为博主原创文章,未经博主允许请勿转载!作者:ISmileLi