# 闭包是函数编程的语法结构,简化程序,可重复使用行更加强
# 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
网友评论