Je me bats sur la façon de comprendre comment je passe les arguments d'une fonction afin que je puisse remplir une liste dans une autre fonction - mon code est:Python - Passage Fonction Arguments
infinity = 1000000
invalid_node = -1
startNode = 0
#Values to assign to each node
class Node:
distFromSource = infinity
previous = invalid_node
visited = False
#read in all network nodes
def network():
f = open ('network.txt', 'r')
theNetwork = [[int(node) for node in line.split(',')] for line in f.readlines()]
print theNetwork
return theNetwork
#for each node assign default values
def populateNodeTable():
nodeTable = []
index = 0
f = open('network.txt', 'r')
for line in f:
node = map(int, line.split(','))
nodeTable.append(Node())
print "The previous node is " ,nodeTable[index].previous
print "The distance from source is " ,nodeTable[index].distFromSource
index +=1
nodeTable[startNode].distFromSource = 0
return nodeTable
#find the nearest neighbour to a particular node
def nearestNeighbour(currentNode, theNetwork):
nearestNeighbour = []
nodeIndex = 0
for node in nodeTable:
if node != 0 and currentNode.visited == false:
nearestNeighbour.append(nodeIndex)
nodeIndex +=1
return nearestNeighbour
currentNode = startNode
if __name__ == "__main__":
nodeTable = populateNodeTable()
theNetwork = network()
nearestNeighbour(currentNode, theNetwork)
Donc, je suis en train pour remplir la liste des voisins les plus proches dans ma fonction plus proche du voisinage avec une liste des nœuds les plus proches des autres nœuds. Maintenant, toutes les autres fonctions fonctionnent correctement, avec tous les arguments passant à fonctionner comme il se doit. Cependant, ma fonction nearestNeighbour vomit ce message d'erreur:
if node != 0 and theNetwork[currentNode].visited == false: AttributeError: 'list' object has no attribute 'visited'
(Toutes mes excuses pour la mise en page, n'a pas tout à fait sondée l'utilisation du code cite encore)
Ah ok, j'ai essayé et je reçois un message d'erreur - est-il possible de travailler avec ce que j'ai, mais il suffit de changer le code dans mon nearestNeighbour fonction? – user612041