我是社区新手,感谢您的回复。我最近学习了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,这意味着该功能不起作用。知道我哪里做错了吗?谢谢!
答案 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