Stampare albero parole python

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
ermescurt
Linux 0.x
Linux 0.x
Messaggi: 1
Iscritto il: sab 22 nov 2014, 11:49

Stampare albero parole python

Messaggio 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

Avatar utente
d4z_c0nf
Packager
Packager
Messaggi: 1296
Iscritto il: mar 14 mar 2006, 18:07
Nome Cognome: Rocco Aliberti
Slackware: 14.2-current64
Kernel: 4.14.73
Desktop: awesomeWM
Località: Pinerolo

Re: Stampare albero parole python

Messaggio 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

Avatar utente
lablinux
Linux 4.x
Linux 4.x
Messaggi: 1141
Iscritto il: gio 27 nov 2008, 12:23
Desktop: Gnome
Distribuzione: Debian testing
Località: Rho

Re: Stampare albero parole python

Messaggio da lablinux »

Posso permettermi un appunto/domanda?
perché nei parametri dell'initi metti la variabile w che non usi (o cosi sembra)?

Rispondi