python类的实例复制_如何将所有python实例复制到一个新类中?

我想深度复制一个类的所有实例,但不复制给定类的定义和规则。在

如果我有一个类“OriginalClass”,它的实例就是我存储的变量。当程序继续运行时,我希望能够使用OriginalClass以前的“快照”,从中我将只使用值(我不会在那里存储新的值,因此不需要继承规则)。在

上面这个简单的例子很管用,和我想做的非常相似:import copy

class VM:

#nothing in the class

pass

VM1=VM()

VM1.test=dict()

VM1.test['one']="hello"

def printmytext(VMPast=copy.deepcopy(VM1)):

g.es(VMPast.test['one'])

VM1.test="Bye"

printmytext() #Returns "hello"

但我们的想法是:

^{pr2}$

对于工作代码,我不知道如何编写,它将复制实例和字典,但不复制定义。在

原因是,在我的程序中使用deepcopy版本时(这样:)VMPast=copy.deepcopy(VM1)

VM1.MyMethod(VMPast.MyButton[-1])

它抛出以下错误:AttributeError: AttributeSetter instance has no __call__ method

因为:VMPast.MyButton[-1]

已发送为:'__deepcopy__'

而不是实际的替代值,我想。。。(按钮),因此,如果VMPast已经是VM中实例的工作副本,那么这将在返回deepcopy时起作用!

另一件事是,实例是动态的,我事先不知道原始类在那一刻将拥有的名称或值。

非常感谢你!在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值