deepcopy对象失败

时间:2016-06-06 00:32:44

标签: python

我是社区新手,感谢您的回复。我最近学习了Python,并尝试编写一个函数来深层复制一些对象。

import copy
class node:
    def __init__(self,x):
        self.x=x

a=node(8)
d=node(10)
c=copy.deepcopy(d)
def copyNode(a):
    c=copy.deepcopy(a)
copyNode(a)
print c.x

在上面,我尝试使用copyNode函数将节点a深层复制到c。但是,在调用此方法后,打印输出为10,这意味着该功能不起作用。知道我哪里做错了吗?谢谢!

1 个答案:

答案 0 :(得分:0)

c=copy.deepcopy(a)中的变量c在copyNode函数内部定义。当你在那里打印c.x时,你会看到:

import copy
class node:
    def __init__(self,x):
        self.x=x

a=node(8)
d=node(10)
c=copy.deepcopy(d)
def copyNode(a):
    c=copy.deepcopy(a)
    print(c.x)
print(c.x)
copyNode(a)
print(c.x)

输出:10 8 10