Python中的内存管理涉及一个私有堆内存位置,该位置包含所有Python对象和数据结构。
Python的运行时仅处理对对象的引用(所有对象都驻留在堆中):Python堆栈上的内容始终是对其他位置的值的引用。
>>> a = [1, 2]
>>> b = a
>>> a.append(3)
在这里,我们可以清楚地看到变量b
与绑定到同一对象a
。
您可以使用is
运算符来测试两个对象在物理上是否相同,这意味着它们在内存中是否具有相同的地址。也可以使用id()
功能进行测试。
>>> a is b
>>> True
>>> id(a) == id(b)
>>> True
因此,在这种情况下, 。完成此操作后,两个不同的列表对象之间将不再有连接。
>>> b = list(a)
>>> a is b
>>> False