我可以决定在Python中是深拷贝还是浅拷贝吗?

问题描述 投票:0回答:0

C++有指针,但听说Python没有。

但是,在下面的示例中,在类 c1 中,我将类 c0 复制到 c0.link_c。

我认为应该通过深拷贝来复制 c0 的新实例,但它只是复制一个指针来进行浅拷贝。

我可以决定在这种情况下是做深拷贝还是浅拷贝吗?

class Paraent:
    def __init__(self):
        self.a = 0
        self.c0 = Child()
        self.c1 = Child(c=self.c0)
    def exe(self, input):
        self.c1.exe(input)

class Child:
    def __init__(self, c=None):
        self.v0 = 0
        self.v1 = 1
        if c is not None:
            self.link_c = c
    def exe(self, input):
        self.link_c.v0 = input
        

p0 = Paraent()
p0.exe(3)
print(p0.c0.v0) ## 3 not 0
python pointers
© www.soinside.com 2019 - 2024. All rights reserved.