Buogiorno,
Ho letto adesso il tuo post a causa di una lunga assenza dal forum.
Penso ormai non ti sia più di aiuto la risposta che ti darò, ma la scrivo ugualmente in modo che possa aiutare qualcun altro con lo stesso tuo problema..
Python mette a disposizione il metodo __str__(self) che viene richiamato dall'interprete quando viene effettuata la stampa di un oggetto, questo metodo deve ritornare una variabile di tipo stringa.
per esempio nel tuo esercizio:
testato con python2.7:
class WNode(object):
def __init__(self, w):
self._w = w
self._children = []
self._level = 0
def add_children(self, w):
self._children.append(w)
def __str__(self):
strToReturn = self._w
for word in self._children:
strToReturn += '\n' +word
return strToReturn
if __name__ == '__main__':
albero = WNode('primo nodo')
albero.add_children('secondo nodo')
print albero
testato con python3:
class WNode(object):
def __init__(self, w):
self._w = w
self._children = []
self._level = 0
def add_children(self, w):
self._children.append(w)
def __str__(self):
strToReturn = self._w
for word in self._children:
strToReturn += '\n' +word
return strToReturn
if __name__ == '__main__':
albero = WNode('primo nodo')
albero.add_children('secondo nodo')
print(albero)
ovviamente nel caso di un albero la stringa potrebbe essere anche più elaborata per esempio in modo da mostrare le varie dipendenze padre-figlio, ma in questo esempio ho scritto in 5 minuti quindi non ho elaborato una cosa del genere.