本文最后更新于 1161 天前,其中的信息可能已经有所发展或是发生改变。
闭包
- 今天看项目发现代码中存在很多闭包的写法,一时间有点懵逼,于是开始学习
闭包的概念:在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调用的过程中,这些私有变量能够保持其持久性。
- 函数嵌套
def test(msg):
def intest():
print('xxx'+msg)
return intest
今天的学习,我总结一下我对闭包的理解,闭包就是 封闭的函数中调用了外部变量,这样就形成了闭包,这个外部变量不能被函数内改变
def test(msg):
content = "content"
def intest():
print(content)
return intest
除非可以在闭包中声明 nonlocal 就可以进行修改
def test(msg):
content = 1
def intest():
nonlocal content
content += 1
print(content)
return intest