gpt4 book ai didi

Python 类列表问题

转载 作者:行者123 更新时间:2023-11-28 20:09:58 25 4
gpt4 key购买 nike

我在使用 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 有问题?我什至不知道从哪里开始尝试解决这个问题。

最佳答案

nodeTable.append(Node)

问题出在那一行。您在那里所做的是将类型(或)附加到列表中。因此,您最终得到了一个七倍于完全相同类型引用的列表。

您应该做的是创建所述类型的实例。您可以通过调用它来做到这一点。

nodeTable.append(Node())

关于Python 类列表问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9365906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com