如何用另一个对象替换所有python对象?用另一个对象替换一个python对象
我有两个类,SimpleObject
和FancyObject
。我创建了一个SimpleObject
,并有几个引用。现在我想创建一个FancyObject
,并使所有这些引用指向新对象。
a = SimpleObject()
some_list.append(a)
b = FancyObject()
a = b
是不是我想要的,它只是改变什么点。我阅读以下内容会有效,但不会。我得到一个错误“属性__dict__是不可写”:
a.__dict__ = b.__dict__
我要的是(伪C)相当于:
*a = *b
我知道这是哈克,但有什么办法完成这个?
所以,你想改变什么数据被存储在'了'存储的地方吗?我会在午餐后发布答案。 – pradyunsg
@Schoolboy是的。基本上我已经把一个简单的对象放在了一个,并且当需要出现时想(懒惰地)将它提升到更复杂的对象b。 a和b有相同的接口,所以使用它们的代码应该能够处理这个。 – jdm