python.闭包

闭包函数

说明:

闭包就是一个封闭的函数,是一种特殊用法的函数,它的主要作用是代码主次分离,也就是在调动一个函数时即实现主要功能,又要让主要次功能的代码互不相扰。但它也不是必须不可的,同样的功能用普通函数都能实现,闭包的特殊体现在巧妙,它也是装饰器的基础,装饰器是一种特殊闭包。

在python中,闭包意味着函数之间存在嵌套,区分内部函数和外部函数,内部函数必须调用外部函数参数,外部函数必须返回内部函数,感觉有些绕,细想就明白了。

相较闭包的定义,调用闭包才是理解它的关键所在,下面区分讲解。

闭包函数三条件:

a,函数之间有嵌套

b,内部函数调用外部参数

c,返回内部函数

举例说明:

def fun_out(x):  #外部函数

    def fun_in(y)   #内部函数

        return x+y    #调用外部参数

    return fun_in     #返回内部函数

闭包调用:

闭包必须满足以上三个条件,但它的调用有些麻烦,首先我们调用外部函数:

a =fun_out(100)

当调用外部函数时它就会运行外部函数里的代码,由于外部函数的代码也是一个函数(内部函数),所以 a=内部函数fun_in,这一点很重要,它是理解闭包的核心!所以 a也可以理解成一个函数,我们也可以调用a函数,调用a函数就等于调用内部函数fun_in。

b =a(200)  #其实就和b=fun_in(200)相同

print(b)    #返回300

因为整个函数返回内部函数,而内部函数又返回x+y,所以返回300。以上是理解闭包的基础思路,闭包能实现的功能多种多样,这个要在具体实践中多体会,但所有闭包都满足三个条件,所有调用都得二次赋值,这个不会变。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值