我一直在研究深度学习的基本代码。
我看到了使用python类构建模型的代码。
但是我不知道在修改父类的实例变量时,为什么子类的实例变量会发生变化?
请参考以下代码:
class Childclass:
def __init__(self, child_vec):
self.params = [child_vec]
class Parentclass:
def __init__(self):
child_vec = np.array([0, 1, 2, 3, 4])
self.layers = Childclass(child_vec)
self.params = []
self.params += self.layers.params
parent_class = Parentclass()
print(parent_class.params) # [array([0, 1, 2, 3, 4])]
parent_class.params[0][0] = 777
print(parent_class.params) # [array([777, 1, 2, 3, 4])]
print(parent_class.layers.params) # [array([777, 1, 2, 3, 4])]
与“浅拷贝”有关吗?