请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

闭包占用的内存

624e74a90001cac311760662.jpg
老师您好,
左边在执行fn=create()后产生闭包,如果调用fn会引用a=100,此时内存会一直存在a=100这个变量。
右边代码在执行结束后,内存是不存在a=200这个变量的,请问是这样吗?
所以多次执行create()并赋值给不同变量会造成内存泄漏,而多次执行print(fn)不会造成内存泄漏,请问可以这么理解吗?

正在回答 回答被采纳积分+3

1回答

双越 2022-04-15 08:56:14

正常的闭包不会产生内存泄漏。内存持续占用,并不是内存泄漏,这是俩概念。


PS:如果你工作经验、实践经验还不多,就先别要求自己去熟悉这些原理,否则你会学习效率低、很痛苦。很多其他同学也被我这样建议了。

0 回复 有任何疑惑可以回复我~
  • wibc666 #1
    内存泄漏简单理解:无用的内存还在占用,得不到释放和归还,注意是无用的。多次执行create()只是内存持续占用,并不代表内存泄漏,但量多了也会有性能影响,所以这也是闭包的缺点。
    
    如不调用fn()那就是内存漏了,既非正常的闭包!
    
    老师我可以这么理解吧?
    回复 有任何疑惑可以回复我~ 2022-06-14 10:45:44
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信