python闭包函数怎么用
python闭包函数:
闭包,又称闭包函数或者闭合函数,类似于嵌套函数,不同之处在于,闭包中外部函数返回的不是一个具体的值,而是一个函数。一般情况下,返回的函数会赋值给一个变量,这个变量可以在后面被继续执行调用。
例如,计算一个数的n次幂,用闭包可以写成下面的代码:
#闭包函数,其中exponent称为自由变量
defnth_power(exponent):
defexponent_of(base):
returnbase**exponent
returnexponent_of#返回值是exponent_of函数
square=nth_power(2)#计算一个数的平方
cube=nth_power(3)#计算一个数的立方
print(square(2))#计算2的平方
print(cube(2))#计算2的立方
运行结果为:
4
8
在上面程序中,外部函数nth_power()的返回值是函数exponent_of(),而不是一个具体的数值。
需要注意的是,在执行完square=nth_power(2)和cube=nth_power(3)后,外部函数nth_power()的参数exponent会和内部函数exponent_of一起赋值给squre和cube,这样在之后调用square(2)或者cube(2)时,程序就能顺利地输出结果,而不会报错说参数exponent没有定义。
看到这里,读者可能会问,为什么要闭包呢?上面的程序,完全可以写成下面的形式:
defnth_power_rewrite(base,exponent):
returnbase**exponent
上面程序确实可以实现相同的功能,不过使用闭包,可以让程序变得更简洁易读。设想一下,比如需要计算很多个数的平方,那么读者觉得写成下面哪一种形式更好呢?
#不使用闭包
res1=nth_power_rewrite(base1,2)
res2=nth_power_rewrite(base2,2)
res3=nth_power_rewrite(base3,2)
#使用闭包
square=nth_power(2)
res1=square(base1)
res2=square(base2)
res3=square(base3)
显然第二种方式表达更为简洁,在每次调用函数时,都可以少输入一个参数。
其次,和缩减嵌套函数的优点类似,函数开头需要做一些额外工作,当需要多次调用该函数时,如果将那些额外工作的代码放在外部函数,就可以减少多次调用导致的不必要开销,提高程序的运行效率。
以上内容为大家介绍了python闭包函数怎么用,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。
相关推荐HOT
更多>>如何使用Pandas处理Excel?
如何使用Pandas处理Excel?做过行政或者人事,或者对此有过了解的小伙伴,一定对下发各个部分的表有着非常深刻的印象,最常见的就是需要我们将一...详情>>
2023-11-14 07:43:15python中np.insert()函数的使用方法
python中np.insert()函数的使用方法在numpy数组操作中,np.append()方法可以在每行每列的最后添加数据,但其位置是规定的,那如果想要指定添加...详情>>
2023-11-14 05:06:13SVM在python中的原理如何理解?
SVM在python中的原理如何理解?在python中除了编程化的知识点外,对于数学方法的算法也有所涉及,SVM就是一种很好地体现。我们学习过数学中的坐...详情>>
2023-11-14 04:30:04python处理绝对路径和相对路径函数有哪些?
python处理绝对路径和相对路径函数有哪些?绝对路径和相对路径是什么?绝对路径:从根文件夹开始,Windows系统以盘符(C:)作为根文件夹,OSX或Lin...详情>>
2023-11-14 03:33:02热门推荐
如何使用python any()判断多元素?
沸如何使用Pandas处理Excel?
热python函数中的参数有哪些?
热python中pygal模块如何使用?
新Python的excel处理操作
python中doctest库是什么?
python中series是什么意思
python中np.insert()函数的使用方法
SVM在python中的原理如何理解?
Python描述符中有哪三种方法?
python处理绝对路径和相对路径函数有哪些?
python单继承和多继承如何定义?
python封装中的私有如何理解?
python模块引入的三种方式