[Python] Overloading "print"
Federico Figus
figus.federico a gmail.com
Mar 4 Giu 2013 17:03:46 CEST
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 FaskeStdout(object):
can_write = 1
def write(self, data):
if self.can_write:
_stdout.write(data)
sys.stdout = FakeStdout()
print "stampa sullo stdout"
sys.stdout.can_write = 0
print "non stampa sullo stdout"
La seconda soluzione sarebbe creare la tua funzione print con un alias
(e.g. print_log()) e modidicare tutto il codice con un semplice
find&replace, così potrai controllare la meglio tutta questa parte in
futuro.
Saluti,
Federico F.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130604/6e1b6d07/attachment.html>
Maggiori informazioni sulla lista
Python