美文网首页
Python的闭包

Python的闭包

作者: 是归人不是过客 | 来源:发表于2018-07-05 19:56 被阅读5次

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

    # 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

    相关文章

      网友评论

          本文标题:Python的闭包

          本文链接:https://www.haomeiwen.com/subject/nucmuftx.html