Python的闭包

# 闭包是函数编程的语法结构,简化程序,可重复使用行更加强

# python中的闭包从表现形式上定义(解释)为:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)

def ExFunc(n):

        sum=n

        def InsFunc():

                    return sum+1

         return InsFunc

myFunc=ExFunc(10)

print(myFunc())       #11

myAnotherFunc=ExFunc(20)

print(myAnotherFunc())    #21

print(myFunc())    #11

print(myAnotherFunc())    #21

# 得到的结果是隔离的,也就是说每次调用ExFunc函数后都将生成并保存一个新的局部变量sum。其实这里ExFunc函数返回的就是闭包。

def line_out(k,b):

                def line_in(x):

                        return k*x+b

                return line_in

line=line_out(2,3);        #代表 line_in

line(4);         # 代表  k*x+b

y=line(4)

print(line)                     #输出.line_in at 0x00000220E8AA9D90>

print(y)                         # 输出11

print(line(4))                 #输出11

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容