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.
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a