python中的闭包
发布时间:2020-12-20 10:40:09 所属栏目:Python 来源:网络整理
导读:返回函数 函数在python中是可以的作为返回值的 假如原来有这样一个函数 def cal_sum(*args): s=0 for i in args: s+=i return s cal_sum(1,2,3,4,5)15 假如现在不着急立刻求和,向一会儿在计算可以返回函数 def lazy_sum(*args): def sum(): s=0 for i in ar
返回函数函数在python中是可以的作为返回值的 假如原来有这样一个函数 >>> def cal_sum(*args): s=0 for i in args: s+=i return s >>> cal_sum(1,2,3,4,5) 15 假如现在不着急立刻求和,向一会儿在计算可以返回函数 >>> def lazy_sum(*args): def sum(): s=0 for i in args: s+=i return s return sum >>> f=lazy_sum(1,5,6) >>> f <function lazy_sum.<locals>.sum at 0x00000000033F8B70> >>> f() 21 >>> 我们通过观察可以发现,定义的sum函数可以使用lazy_sum中传入的参数args,而当lazy_sum函数将sum函数返回给f的时候,f包含了args参数,可以说lazy_sum是将函数sum和参数args一并打包送给了f,这个包叫做闭包 注意:尽管每次传入的同样的参数,但是最后得到的函数是不一样的 >>> f1=lazy_sum(1,6) >>> f2=lazy_sum(1,6) >>> f1==f2 False 函数lazy_sum中又定义了函数sum,内部函数sum
闭包闭包遵循的三条规则
注意: 一般情况下,如果一个函数结束,那么该函数中定
>>> def make_inc(x): def inc(y): return x+y return inc >>> inc5=make_inc(5) >>> inc5(6) 11 闭包的主要作用在于可以封存函数执行的上下文环境。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |