python为什么closed_python中的闭包怎么理解?

首先,不止python有闭包,所有有函数作用域的语言都有闭包。闭包只是对函数作用域的运用。

一个变量x(x代表任何),加一个引用这个变量x的函数就是一个闭包。之所以很多闭包表现形式是:把这个变量x和引用变量x的函数用一个外部函数包起来,然后return出去,并且立即调用。我给你解释这么做的原因。

用外部函数包裹住变量x与引用变量x的函数,只是为了创造一个局部变量。不用函数包裹的话,该变量就成为了全局变量,无法实现闭包的唯一目的——隐藏变量。闭包英文名是clouser,并没有包的意思,只是中文这么翻译。之所以隐藏变量,举个例子。我们做一款游戏,初始值有30条命。如果在是全局变量,有人不小心修改了30,这并不是我们想要的结果。我们可以把30条命隐藏在闭包里。别人想改变命的时候,可以调用我们在闭包中给他设定好的修改函数。没有人可以改30这个初始值,我们就达到了闭包的目的,隐藏变量,并给别人一种我们设定好的方式来修改我们的变量。

这就是闭包了,在所有有局部作用域的语言中都是这个道理。可以说闭包是函数作用域的副作用。

很多时候,有些难以理解的概念道理其实很简单。别被人绕晕了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值