使用deepCopy在Python中创建独立的Object

时间:2016-03-27 07:02:45

标签: python deep-copy

问题是我无法使用deepcopy()创建megaNode的独立副本到newMegaNode。即使在使用它之后,newMeganode和megaNode也会绑定在一起。我在这做错了吗?在输出中,即使我专门使用deepcopy()将其内容复制到newMegaNode并添加到newList中,一切都被绑定到megaNoda。

   def newAlgo():
        global nodeQueue
        initalNode = AnswersAlgo();
        scratchList = []
        scratchList.append(initalNode)

        newList = []
        for node in nodeQueue:

            for megaNode in scratchList:
                if validation(node,megaNode):
                    newMegaNode = copy.deepcopy(megaNode) #Unable to create independent object
                    newList.append([node,newMegaNode])


        for x,y in newList:     
            scratchList.append(y.addToList(x))

1 个答案:

答案 0 :(得分:0)

有时在python 2.x中,如果你没有从类定义中的“object”继承,那么类行为会让人感到困惑。如果你的python版本是2.x,请确保你的类继承自“object”,如下所示:

class megaNode(object):
    ...

另请查看this post