【发布时间】:2012-03-11 01:48:48
【问题描述】:
我遇到了一些 Python 问题。我有一个包含一个类的七个副本的列表,我打算只更改其中一个的值,但每当我这样做时,它都会更改所有的值。
这是课程:
class Node:
previous = -1
distFromSrc = 1000000
visited = False
这是我创建列表的方式:
def createNodeTable(network):
nodeTable = []
for line in network:
nodeTable.append(Node)
return nodeTable
'network' 是一个长度为 7 的列表,因此当我在尝试对值进行任何更改之前打印 'nodeTable[x].visited' 时,每个值都会得到 'False'。
如果我调用以下函数,但所有 '.visited' 值都会更改为 false,而不仅仅是我打算更改的值。
无论 'currentNode' 更改为什么,我都会遇到同样的问题:
def setVisited(currentNode, nodeTable):
nodeTable[currentNode].visited = True
return nodeTable
setVisited 函数有问题还是 nodeTable 有问题?我什至不知道从哪里开始尝试解决这个问题。
【问题讨论】: