gpt4 book ai didi

python - 在任何地方用另一个替换一个 python 对象

转载 作者:行者123 更新时间:2023-12-03 14:34:58 25 4
gpt4 key购买 nike

如何用另一个对象替换任何地方的python对象?

我有两个类,SimpleObjectFancyObject .我创建了一个 SimpleObject , 并且有几个引用。现在我想创建一个 FancyObject ,并使所有这些引用指向新对象。

a = SimpleObject()
some_list.append(a)
b = FancyObject()
a = b不是我想要的,它只是改变了 a 指向的内容。我阅读了以下内容,但没有。我收到错误“属性 __dict__ 不可写”:
a.__dict__ = b.__dict__

我想要的是相当于(伪C):
*a = *b

我知道这很hacky,但是有什么办法可以做到这一点吗?

最佳答案

您可以将该对象放在单独模块的全局命名空间中,然后在需要时对其进行修补。
objstore.py :

replaceable = object()
sample.py :
import objstore

b = object()

def isB():
return objstore.replaceable is b

if __name__ == '__main__':
print isB()#False
objstore.replaceable = b
print isB()#True

附言依赖猴子补丁是糟糕设计的症状

关于python - 在任何地方用另一个替换一个 python 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17876852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com