当覆盖变量时,Python 中的内存位置会发生什么?

2023-11-26

In [1]: class T(object):
   ...:     pass
   ...:

In [2]: x = T()

In [3]: print(x)
<__main__.T object at 0x03328E10>

In [4]: x = T()

In [5]: print(x)
<__main__.T object at 0x03345090>

内存位置何时分配给第一个T()对象(0x03328E10)已释放?是不是当变量x被覆盖或者垃圾收集器运行时或脚本结束时?

我假设这是垃圾收集器运行的时候,但我不知道如何测试这个假设。


Python 内存管理大部分是通过引用计数完成的,而不是垃圾收集。当引用计数变为零时,内存可用于重新分配。

垃圾收集器仅在存在循环引用时发挥作用,但这里的情况并非如此。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当覆盖变量时,Python 中的内存位置会发生什么? 的相关文章

随机推荐