闭包就是在一个函数内部使用其他函数的变量的情况,即函数包裹着函数(函数中的变量是局部变量,其作用域为函数内部)
闭包的条件:
def outter():
a = 1
print("外函数")
def inner():
b = 1
print("内函数")
print("a+b = {}".format(a+b))
return inner
res = outter()
res()
外函数
内函数
a+b = 2
其他写法:
1、
def outter():
a = 1
print("外函数")
def inner():
b = 1
print("内函数")
print("a+b = {}".format(a+b))
return inner()
res = outter()
print(res)
外函数
内函数
a+b = 2
None
返回的是inner(),而inner()没有返回值,因此在最后还会打印一个None
2、
def outter():
a = 1
print("外函数")
def inner():
b = 1
print("内函数")
print("a+b = {}".format(a+b))
return inner
res = outter()
print(res)
外函数
.inner at 0x000002D036EA8E50>