关于闭包的问题
当我设计了一个闭包,存储了一个变量,比如 a=10,在内函数被调用且读取了a=10后。def ceshi():
a=10
def inner():
print(b:=a+1)
return inner
ceshi()()
内函数计算结束并返回结果给调用方后, a=10 会被释放掉吗?
是每次调用的时候重新赋值局部变量A=10,还是只要第一次调用了,这个变量就一直存储起来了,如果是存储起来了, 如何设计
让inner返回结果的时候就释放掉a=10这个变量呢? 存储起来了。
如何设计让inner返回结果的时候就释放掉a=10这个变量呢?啥意思?
你看看这个例子,就拿甲鱼哥的:https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=172822&pid=4777716
给大家解答一下, 那就是除非人工del掉闭包的局部变量,否则一直存储在内存中, 所以闭包内外没有关联的话,一定要记得del掉,否则持久化程序,这个就是内存溢出的隐患点, 如果是用做装饰器,就更加需要del删除掉了,否则一直存在。
页:
[1]