Python的闭包

2018-07-05  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读