1. 闭包的本质
闭包是函数,是能够访问其它函数作用域的函数,实现上就是函数嵌套函数
当一个函数能访问到其外层函数的作用域的现象叫做闭包现象,注意是函数环境,不是全局环境
2. 举个例子
def a():
name = "IU"
def b():
return name
return b
n = a() #a()返回的是b函数
print(n()) #n()实际执行的是b()
# 运行结果:IU
根据这个例子,我们可以发现,原来的name这个变量是属于函数a的局部变量,函数外部是访问不到该变量的,但是经过闭包操作,就将name从函数内部吐了出来,此时在外部也可以访问到name的值了,相当于变相延长了局部变量的生命周期。
3. 再举个例子
def num1(n1):
def num2(n2):
print("{0}和{1}的和是{2}".format(n1,n2,n1+n2))
return num2
n = num1(20) # 20作为实参传递给n1
n(10) # 10作为实参传递给n2
# 20和10的和是30