从变量取消引用内存中的 Python 列表对象时会发生什么?
示例
A = ["A", "B"]
print(A)
A = []
A = None
print(A)
["A", "B"]
会发生什么?
最佳答案
不再有任何引用指向它们的对象将被删除。
CPython 通过引用计数来实现这一点;分配会增加引用计数,删除引用会减少引用计数。当计数达到 0 时,对象将被自动删除。
边缘情况是指对象直接或间接指向自身;例如,通过向其自身添加一个列表:
>>> a = []
>>> a.append(a)
>>> a
[[...]]
那里的省略号表示引用循环。 Python 使用垃圾收集器来检测并打破此类循环;它定期运行以查找未被其他任何内容引用的对象图。
关于python - 从变量取消引用内存中的 Python 列表对象时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31863707/