python - 完成后我应该删除大对象以在 python 中使用它们吗?

标签 python garbage-collection

假设脚本中没有任何特定的内存优化问题,所以我的问题是关于 Python 编码风格。这也意味着:尽可能快地取消对对象的引用是否是良好且常见的 Python 做法?场景如下。

Class A 将对象实例化为 self.foo 并要求第二个 class B 存储它并与其他对象共享。 在某个时刻,A 决定不再共享 self.foo 并将其从 B 中删除。

A 类 仍然有对 foo 的引用,但我们知道这个对象从现在开始就没有用了。 由于 foo 是一个相对较大的对象,您是否愿意从 A 中删除引用以及如何删除?(例如 del 与设置 self.foo = None) 这个决定如何影响垃圾收集器?

最佳答案

如果在删除属性后,访问属性并查看它是否已设置的概念甚至没有意义,请使用 del。如果在删除属性后,您的程序中的某些东西可能想要检查该空间并查看那里是否有任何东西,请使用 = None

垃圾收集器不会关心任何一种方式。

关于python - 完成后我应该删除大对象以在 python 中使用它们吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24938729/

相关文章:

python - 如何从 PyArrayObject 获取值?

javascript - 如何在单击按钮时调用我的 python 代码中的函数 - 从 javascript onClick 调用 Python

Java 垃圾收集器 :old generation becomes larger and larger and cannot be reclaimed

android - Android上GC的日志

java - 字符串连接在字符串池中是如何工作的?

python - 类型错误 : unsupported operand type(s) for +: 'int' and 'str' (Logistic regression)

python - 根据条件创建新的 numpy 数组

java - 从 CSV 文件读取时超出 GC 开销限制

java - 当老一代的jvm超过某个比例时如何自动转储内存?

python - 如何将描述符与实例的属性一起使用?