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
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:
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
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
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,
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
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...
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
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
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
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).
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
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,
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
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
15 matches
Mail list logo