如何解决我何时应该在python中使用del?
永远不要,除非您对内存非常紧张并且要做的事情非常庞大。如果您正在编写常规程序,则垃圾收集器应该处理所有事情。
如果要编写大量的东西,应该知道del
不会删除对象,而只是取消引用它。即变量不再是指对象数据在内存中的存储位置。之后,它仍然需要由垃圾收集器清理,以释放内存(这是自动发生的)。
还有一种强制垃圾收集器清理对象的方法-gc.collect()
在运行后可能会很有用del
。例如:
import gc
a = [i for i in range(1, 10 ** 9)]
...
del a
# Object [0, 1, 2, ..., 10 ** 9 - 1] is not reachable but still in memory
gc.collect()
# Object deleted from memory
:注释中的注释非常好。注意对内存中对象的其他引用。例如:
import gc
a = [i for i in range(1, 10 ** 9)]
b = a
...
del a
gc.collect()
执行完该块后,大数组仍可访问b
并且不会被清理。
解决方法
所以我很好奇,可以说我有一个如下的课程
class myClass:
def __init__(self):
parts = 1
to = 2
a = 3
whole = 4
self.contents = [parts,to,a,whole]
有增加线的好处吗
del parts
del to
del a
del whole
在构造函数内部还是这些变量的内存由作用域管理?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。