python函数嵌套--闭包

函数嵌套
python中有一个特殊的语法,很少有人会用到,但是又是确实会使用,那就是嵌套函数。

def outer(factor):
    def inner(number):
        return number*factor
    return inner

一个函数在另一个函数里面,外层函数返回的是里层函数,也就是函数本身被返回了,返回的是函数。
注意,返回的函数还可以访问它的定义所在的作用域,也就是它带着它的环境。
这个被称为闭包。

其调用方法为:

func_inner = outer(4)
value = func_inner(5)
print(value)
# 结果为20
# 第一次获取到内部的函数,之后可以直接使用这个函数

#或者我们也可以写成一句话:
value = outer(4)(5)
print(value)
# 得到的结果也为20

#这是闭包函数的调用方式之一

关于闭包:
 

def line_conf():
    b = 15
    def line(x)
        return 2*x + b
    return line


#此处我们调用方式为:
b = 5
func_line = line_conf()
value = func_line(5)

#输出结果为25 = 2 x 5 + 15

#此处我们调用前,先重新设置了b的值,但是输出结果却并没有变为15
#这就是闭包的设计,

在这种情况下,我们说line函数和它的环境变量b构成了一个闭包,闭包是一个独立的运行环境,不受外部环境的影响和约束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

auspark

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值