更改父类的实例变量时,为什么子类的实例变量也会随之更改?

时间:2019-05-26 09:26:33

标签: python

我一直在研究深度学习的基本代码。

我看到了使用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])]

与“浅拷贝”有关吗?

0 个答案:

没有答案