Ho deciso di usare str per la stampa il contenuto di un albero in struttura ad albero, utilizzando qualcosa di similePerché str non può ottenere un secondo parametro, quando __str__ può?
print tree
I nodi dell'albero sono tutti gli oggetti di classi create dall'utente e sovraccaricare il loro __str__
metodo magico al fine di utilizzare str il bambino nodi dopo schede t rientro del genere
def __str__ (self,t=0) :`
return t*'\t' + str(self.label) +':' +'\n'+ str(self.l,t+1)+'\n'+str(self.right,t+1)+'\n'
Tuttavia non posso chiamare str
con tale parametro t
, ma posso chiamare node.__ str__(t=4)
.Isn't str
, scorciatoia solo per la magia metodo? O è perché il pa rser rifiuta parametri aggiuntivi a str
senza controllare il metodo magico?
P.S. Sono interessato al comportamento. So che non è il modo migliore per stampare un albero, è stato un trucco;)
ma se str si comporta come nel tuo esempio, funzionerà se obj .__ str __() non porta all'eccezione. E non nel mio caso. –
ho capito, mi dispiace;) –
@Alexander Ivanov: Il '...' nel codice è * codice omesso *, solo a scopo illustrativo. Non intendevo dare un'implementazione completa di 'str'. –