如果没有指定特定的python版本/实现,你不能真正问这样的问题.如果你在谈论参考实现(CPython),你可以看一下这个参考或者这个参考用于python3.x.
特别:
重要的是要理解Python堆的管理是由解释器本身执行的,并且用户无法控制它
因此,无法回答内存位置是否仍然有效.我们可以谈论的是垃圾收集器是否会收集对象.由于CPython依赖于引用计数,因此当您为其指定不同的值时p
,原始值上的引用计数会减1.如果该引用计数降至零,则垃圾收集器将收集该对象.这意味着内存位置可用于某些其他对象,或者可能是python将该内存返回给操作系统.作为用户,您无法控制python解释器将采取哪些操作(或何时).
基本上,python解释器负责处理防止内存泄漏/内存溢出等所需的所有细节.作为python程序员,您不必担心这些细节,就像您需要担心这些细节一样你是用像C这样的低级语言编写的.
如果没有指定特定的python版本/实现,你不能真正问这样的问题.如果你在谈论参考实现(CPython),你可以看一下这个参考或者这个参考用于python3.x.
特别:
重要的是要理解Python堆的管理是由解释器本身执行的,并且用户无法控制它
因此,无法回答内存位置是否仍然有效.我们可以谈论的是垃圾收集器是否会收集对象.由于CPython依赖于引用计数,因此当您为其指定不同的值时p
,原始值上的引用计数会减1.如果该引用计数降至零,则垃圾收集器将收集该对象.这意味着内存位置可用于某些其他对象,或者可能是python将该内存返回给操作系统.作为用户,您无法控制python解释器将采取哪些操作(或何时).
基本上,python解释器负责处理防止内存泄漏/内存溢出等所需的所有细节.作为python程序员,您不必担心这些细节,就像您需要担心这些细节一样你是用像C这样的低级语言编写的.