[Python] Overloading print

2013-06-04 Per discussione Vittorio Spina
Salve a tutti, ho un programma di decine di migliaia di righe di codice che spesso e volentieri utilizza print come output di debug, pur avendo un'interfaccia windowed. Come faccio a fare l'overloading del print in modo da non dover eliminare tutti i print presenti nel codice? C' un modo

Re: [Python] Overloading print

2013-06-04 Per discussione Marco De Paoli
Il giorno 04 giugno 2013 16:26, Vittorio Spina vittorio.sp...@gmail.comha scritto: Come faccio a fare l'overloading del print in modo da non dover eliminare tutti i print presenti nel codice? puoi provare ridefinendo lo stdout import sys sys.stdout = open('file', 'w') print 'test' vedi qui:

Re: [Python] Overloading print

2013-06-04 Per discussione Vittorio Spina
Il 04/06/2013 16:29, Marco De Paoli ha scritto: Il giorno 04 giugno 2013 16:26, Vittorio Spina vittorio.sp...@gmail.com mailto:vittorio.sp...@gmail.com ha scritto: Come faccio a fare l'overloading del print in modo da non dover eliminare tutti i print presenti nel codice? puoi

Re: [Python] Overloading print

2013-06-04 Per discussione Federico Figus
Ciao, l'override dell'istruzione print non è possibile in python 2.x, ma lo è in python 3.x. Per aggirare il problema potresti definire un file-like object che possieda almeno il metodo write, al cui interno ci implementi la logica di scritura, ad esempio: import sys _stdout = sys.stdout class

Re: [Python] Overloading print

2013-06-04 Per discussione Vittorio Spina
Il 04/06/2013 17:03, Federico Figus ha scritto: Ciao, l'override dell'istruzione print non è possibile in python 2.x, ma lo è in python 3.x. Per aggirare il problema potresti definire un file-like object che possieda almeno il metodo write, al cui interno ci implementi la logica di scritura,

Re: [Python] Overloading print

2013-06-04 Per discussione Marco De Paoli
Il giorno 04 giugno 2013 17:08, Vittorio Spina vittorio.sp...@gmail.comha scritto: cambiare tutti i print con un findreplace. la riga print ciao mondo dovrebbe diventare print_log(ciao mondo) e l'ultima parentesi tonda chiusa non saprei proprio come inserirla... se sei in vim puoi

Re: [Python] Overloading print

2013-06-04 Per discussione Marco Beri
2013/6/4 Vittorio Spina vittorio.sp...@gmail.com ho pensato a fare un overloading perchè non e' semplice cambiare tutti i print con un findreplace. la riga print ciao mondo dovrebbe diventare print_log(ciao mondo) e l'ultima parentesi tonda chiusa non saprei proprio come inserirla...

Re: [Python] Overloading print

2013-06-04 Per discussione Marco Beri
2013/6/4 Marco De Paoli depao...@gmail.com Il giorno 04 giugno 2013 17:22, Marco Beri marcob...@gmail.com ha scritto: :%s/\print \(.*\)$/print_log(\1)/ uhm, i doppi-apici dentro le parentesi di print_log non mi tornano tanto... secondo me non ci vanno: :%s/\print

Re: [Python] Overloading print

2013-06-04 Per discussione Marco De Paoli
Il giorno 04 giugno 2013 17:29, Marco Beri marcob...@gmail.com ha scritto: Avevo preso la tua istruzione per correggerla e non li ho tolti. incredibile! ... trovare un baco al Beri sulle istruzioni regolari?!? Non ha prezzo! :-) per i posteri: confermo che la forma di marcoberi è decisamente

Re: [Python] Overloading print

2013-06-04 Per discussione Marco Beri
2013/6/4 Marco De Paoli depao...@gmail.com Il giorno 04 giugno 2013 17:29, Marco Beri marcob...@gmail.com ha scritto: Avevo preso la tua istruzione per correggerla e non li ho tolti. incredibile! ... trovare un baco al Beri sulle istruzioni regolari?!? Non ha prezzo! :-) :-D Meno male

Re: [Python] Overloading print

2013-06-04 Per discussione Daniele Varrazzo
On Tue, 2013-06-04 at 17:08 +0200, Vittorio Spina wrote: la riga print ciao mondo dovrebbe diventare print_log(ciao mondo) Se hai deciso di eliminare tutti i print (cosa che consiglio alla grande), penso che la cosa migliore sia sostituirli con logging.info (o logging.debug).

Re: [Python] Overloading print

2013-06-04 Per discussione Carlo Miron
Il 04 giugno 2013 18:01, Marco Beri marcob...@gmail.com ha scritto:: 2013/6/4 Marco De Paoli depao...@gmail.com Il giorno 04 giugno 2013 17:29, Marco Beri marcob...@gmail.com ha scritto: Avevo preso la tua istruzione per correggerla e non li ho tolti. incredibile! ... trovare un baco al

Re: [Python] Overloading print

2013-06-04 Per discussione Marco Beri
2013/6/4 Carlo Miron mi...@python.it Non ho tempo di provare la tua RE, ma sarei curioso di sapere come si comporta con:: print senza_andare_a_capo, print con #commento in linea print concatenando\ due stringhe print due righe # print da sola print print file,

Re: [Python] Overloading print

2013-06-04 Per discussione Vittorio Spina
print_log(senza_andare_a_capo,) print_log(con #commento in linea) print_log(concatenando\) due stringhe print_log(due) righe # print_log(da sola) print print_log( file, qualcosa) Direi che toppa praticamente sempre :-) Ma chissenefrega, solo un _*aspie*_ potrebbe usare la

Re: [Python] Overloading print

2013-06-04 Per discussione Marco Beri
2013/6/4 Vittorio Spina vittorio.sp...@gmail.com print_log(senza_andare_a_capo,) print_log(con #commento in linea) print_log(concatenando\) due stringhe print_log(due) righe # print_log(da sola) print print_log( file, qualcosa) Direi che toppa praticamente