python - 如何覆盖 python 中的对象?

标签 python

<分区>

我有一个程序,覆盖内存中的对象而不是更改它或重定向对它的引用是最明智的。

基本上,如果我正在编写 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 中,您通常不能真的覆盖对象。创建新对象将使用空闲内存。正在使用的内存只有在没有引用时才会被垃圾回收。

关于python - 如何覆盖 python 中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36243488/

相关文章:

python - Sys.path.insert 插入模块路径,但导入不起作用

python - 导入错误 : No module named 'com.android'

python - 异常值检测 DBSCAN

python - Turtle 在我的代码中没有显示环境变量

python - 如何将物体随机放置在不同角度和不同位置的python上

python - 提前停止的 tf keras autokeras 返回空历史记录

python - 根据另一个列表中的值从列表中过滤值的最有效方法是什么

python - 值错误: Unknown format code 'g' for object of type 'str'

python - 为什么用 Python 进行函数式编程?

python - postgres 找到所有者为 'abc' 的所有数据库?