Hello! Someone knows if it's possible to make this __iter__ function with just one 'yield' intead of two? Is there some simpler way to make this __iter__ iter through all nodes? Thanks!
class Node: def __init__(self, data=None): self.childs=[] self.data=data def appendNode(self, n): node=Node(n) self.childs.append(node) return node def __str__(self): return '<'+str(self.data)+'>' def __iter__(self): yield self #1 for n in self.childs: for nn in n.__iter__(): yield nn #2 n=Node() n.appendNode(1).appendNode(2).appendNode(3).appendNode(4) n.appendNode(11).appendNode(22).appendNode(33).appendNode(44) for node in n: print node -- http://mail.python.org/mailman/listinfo/python-list