生成器方法,进行深度复制和复制
|
我试图避免在自定义类(Graph类)中使用Deepcopy
图具有很少的属性,例如顶点,边线等,并且具有多种生成器方法(with0ѭ的方法)。
我需要复制图表:例如
H = deepcopy(G)
,但不使用Deepcopy来加快程序速度。
然后:
如果我不使用deepcopy
,则
新图ѭ3中的生成器方法
不获取当前状态
图G
中的生成器方法。
如果我不使用生成器方法和
选择使用完整列表生成器,
那我会浪费计算时间
无所事事。
解决的办法是尝试将某些特定的生成器方法加2倍,但出现错误。
似乎生成器将引用保存到例如G
的顶点和边,然后深复制到H
时,H
中的生成器仍然引用ѭ4this的属性(这听起来很合逻辑)。
那么,我是否应该谴责使用deepcopy
还是不使用生成器方法?
有第三种pythonic方式吗?
没有找到相关结果
已邀请:
1 个回复
玩翁文醚碱
现在当然会打印
。但是,您希望
记住
的状态,以便对
的调用显示2。一种简单的方法是使它们成为同一对象:
这将打印出
,因为调用
也会使ѭ14advance前进。如果那不是您想要的,那么对我来说,保留一个内部计数器似乎很好,就像这样:
这将打印
,我怀疑这是您想要的。当然,当您更改
时,您将不得不改变对迭代器无效之类的处理方式,但是我认为这应该非常简单。