我有两个脚本,一个是创建类的,另一个是加载/绘图脚本。我有三个同一个类的实例(T1
,T2
和T3
),但希望将它们合并为一个T
。当我只需T=T1
时,T+T2
,T+T3
和T1
,T2
会继续T3
和T
个实例。拥有所有实例。
我尝试在我的类脚本中修改我的__add__
魔术方法,如下所示,但deepcopy
不起作用。 T
仍然是空的。但是,当我在命令窗口中执行T = deepcopy(T1)
时,它可以正常工作。我更喜欢__add__
方法来包含此功能。
从课程脚本:
def __add__(self, other):
""" A "magic" method to overload the '+' operator by
appending trajectories.
"""
if len(self.contents) == 0:
self = deepcopy(other)
else:
self.contents.append(other)
我也尝试过创建一个直接执行deepcopy的新方法,但它也不会按预期复制。
def copy(self,other):
self = deepcopy(other)
我从T
空开始:
In [80]: T.contents
Out[80]: []
但我希望T
包括T1
到T3
,T1
与T
完全相同。
In [74]: T.contents
Out[74]:
[Trajectory Object: MONTE_RUN_mmv13_2D2M_RODupdate
contains data from FAST,
Trajectory Object: MONTE_RUN_mmv13_1D2M_RODupdate
contains data from FAST,
Trajectory Object: MONTE_RUN_mmv13_2D3M
contains data from FAST]
不
In [74]: T1.contents
Out[74]:
[Trajectory Object: MONTE_RUN_mmv13_2D2M_RODupdate
contains data from FAST,
Trajectory Object: MONTE_RUN_mmv13_1D2M_RODupdate
contains data from FAST,
Trajectory Object: MONTE_RUN_mmv13_2D3M
contains data from FAST]