我定义了一个类,其中有一个引用关系。
然后我创建一个实例,在copy.deepcopy这个实例之后,引用关系就消失了,例如:
import numpy as np
class foo(object):
def __init__(self):
self.c = np.array([[1,2],[3,4]])
self.a = self.c[1,:]
ff0 = foo()
ff1 = copy.deepcopy(ff0)
ff1.c +=np.array([10,10])
print(ff1.a)
ff0.c +=np.array([10,10])
print(ff0.a)
输出:
[3 4]
[13 14]
但我希望看到这样的输出:
[13 14]
[13 14]
有人可以帮助我保持这种关系吗?
提前谢谢〜
答案 0 :(得分:0)
我解决了这个问题:
import numpy as np
class foo(object):
def __init__(self):
self.c = np.array([[1,2],[3,4]])
self.a = self.c[1,:]
def copy(self):
cp = copy.deepcopy(self)
cp.a = cp.c[1,:]
return cp
ff0 = foo()
ff1 = ff0.copy()
ff1.c +=np.array([10,10])
print(ff1.a)
ff0.c +=np.array([10,10])
print(ff0.a)
输出:
[13 14]
[13 14]