Pagina 1 di 1

Stampare albero parole python

Inviato: sab 22 nov 2014, 11:50
da ermescurt
Salve ragazzi ho creato un albero di parole inizialmente vuoto in questo modo:

class WNode(object):
def __init__(self, w):
self._w = w
self._children = []
self._level = 0

def add_children(self, w):
self._children.append(w)

Sapete dirmi come posso stampare questo albero e non far apparire la scritta <__main__.WNode at 0x57992f0>
Grazie

Re: Stampare albero parole python

Inviato: dom 23 nov 2014, 12:11
da d4z_c0nf
Mmm, tu stampi l'istanza WNode che hai creato. In realtà tu vuoi stampare il suo "attributo" _children.
Quindi dovresti fare

Codice: Seleziona tutto

foo = WNode('something')
foo.add_children('word')
print(foo._children)
O se vuoi fare un meteodo di WNode che stampi il suo "_children" o ancora ridefinire __str__ per WNode

Codice: Seleziona tutto

def __str__(self):
    return "%s" % self._children
o

Codice: Seleziona tutto

def __str__(self):
    return self._children.__str__()
così quando usi

Codice: Seleziona tutto

 print(foo)
otterrai la stampa di foo._children

Re: Stampare albero parole python

Inviato: lun 24 nov 2014, 12:50
da lablinux
Posso permettermi un appunto/domanda?
perché nei parametri dell'initi metti la variabile w che non usi (o cosi sembra)?