在一个函数内部定义另一个函数,那么外面的函数叫做外函数,内部的函数叫做内函数。在一个外函数中定义了一个内函数,这个内函数调用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。
一般情况下,在我们的认知中,一个函数结束,函数内部的所有东西都会释放掉,还给内存,局部变量也都会消失。但是闭包是一种特殊情况,但外函数结束的时候,发现自己的临时变量将来会被内函数调用,就把这个临时变量绑定给了内函数,然后自己再结束。
def outer(b):
a = 10
def inner():
print(a+b)
return inner
if __name__ == '__main__':
demo = outer(5)
demo()
网友评论