Je suis à l'impression de la valeur de ce que je pensais était une liste, mais le résultat que j'obtiens est:
[...]
Que représente t-il? Comment puis-je tester? J'ai essayé:
myVar.__repr__() != '[...]'
et
myVar.__repr_() != Ellipsis
mais pas de dés...
Voici un cutdown du code qui donne à la question:
def buildPaths(graph, start, end, path=[], totalPaths=[]):
"""
returns list of all possible paths from start node to the end node
"""
path = path + [start]
if start == end:
return path
for nextNode in graph.childrenOf(start):
if nextNode not in path:
newPath = buildPaths(graph, nextNode, end, path, totalPaths)
if newPath != []: # test
totalPaths.append(newPath)
return totalPaths
totalPaths contient BEAUCOUP de [...] soi-disant récursive des listes, mais je ne vois pas pourquoi. J'ai modifié le test à #test pour l'en empêcher.
J'ai aussi essayé:
def buildPaths(graph, thisNode, end, path=[], totalPaths=None):
"""
returns list of all possible paths from start node to the end node
"""
path = path + [thisNode]
if thisNode == end:
return path
for nextNode in graph.childrenOf(thisNode):
if nextNode not in path:
newPath = buildPaths(graph, nextNode, end, path, totalPaths)
if newPath != None:
if totalPaths == None:
totalPaths = [newPath]
else:
totalPaths.append(newPath)
return totalPaths
afin de renvoyer explicitement None
de vide chemins.