如何覆盖python中的对象?

这个问题已经在这里有了答案:            >            How to assign a memory address to a variable in Python?                                    2个
我有一个程序,最明智的做法是覆盖内存中的对象,而不是更改它或重定向对它的引用.

基本上,如果我正在编写C,我将有多个指针都指向内存中的同一地址.我想覆盖该地址上的内容.

我也希望能够从对象本身内部执行此操作.

class MyClass
    def __init__(self):
        pass

    def overwrite(self,otherObjectOfTypeMyClass):
       #after this operation, all references to self now point to otherObjectOfTypeMyClass

最佳答案

与C不同,内存管理不受Python控制.总的来说,那是一件好事.对于那些开始使用C语言的人来说,不必担心内存是他们的一大好处.

在python中,我们所谓的变量实际上是指对象的标签.因此,如果您想更改一个不可变的对象(如列表),则应该在Python中立即使用.

但是,实际上,您实际上一般无法覆盖Python中的对象.创建一个新对象将使用可用内存.并且正在使用的内存只有在没有引用的情况下才会被垃圾回收.