Python - 释放/替换字符串变量,如何处理?

Python - 释放/替换字符串变量,如何处理?

假设我将密码以纯文本形式存储在名为passWd字符串的变量中。当我丢弃该变量时(例如,使用del passWdpassWd= 'new random data'),python 如何释放它?

字符串是否存储为字节数组,这是否意味着它可以在最初存在的内存位置被覆盖,或者它是内存区域中无法修改的固定集合,因此在分配新值时会创建一个新的内存区域,而旧区域将被丢弃但不会被 null 覆盖?

我很想知道 Python 如何实现内存区域的安全性,并想了解更多,主要是因为我很好奇:)

从我目前收集到的信息来看,使用del(或__del__) 会导致解释器不会自动释放该变量的内存区域,这可能会导致问题,而且我不确定德尔删除值时非常麻烦。但这只是我收集到的信息,并不是黑白分明的事情 :)

答案1

答案是具体实现的。从http://docs.python.org/2/library/stdtypes.html

在 5.6 序列类型下,请注意“注释#6”,其中解释道,某些实现(例如 CPython)在内存中执行就地字符串更新,而其他实现可能将字符串视为不可变对象,当替换/更改时会在内存中定义一个新区域。

相关内容