如何在各处使用另一个对象替换python对象?
我有两个课,SimpleObject和FancyObject。我创建了一个SimpleObject,并且有多个引用。现在,我想创建一个FancyObject,并使所有这些引用都指向新对象。
a = SimpleObject()
some_list.append(a)
b = FancyObject()
Run Code Online (Sandbox Code Playgroud)
a = b不是我想要的,只是改变了要指向的内容。我阅读了以下内容,但没有用。我收到一个错误“属性__dict__不可写”:
a.__dict__ = b.__dict__
Run Code Online (Sandbox Code Playgroud)
我想要的是(pseudo-C)的等效项:
*a = *b
Run Code Online (Sandbox Code Playgroud)
我知道这很骇人,但是有什么办法可以做到这一点?
不可能。它会让你改变不可变的对象并导致各种肮脏的事情。
x = 1
y = (x,)
z = {x: 3}
magic_replace(x, [1])
# x is now a list!
# The contents of y have changed, and z now has an unhashable key.
x = 1 + 1
# Is x 2, or [1, 1], or something stranger?
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3668 次 |
| 最近记录: |