<div dir="ltr"><div><div><div><div><div><div><div><div><div><div>Ciao,<br><br></div>l'override dell'istruzione print non č possibile in python 2.x, ma lo č in python 3.x.<br></div>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:<br>
<br></div><div><span style="font-family:courier new,monospace">import sys</span><br></div><div><span style="font-family:courier new,monospace">_stdout = sys.stdout</span><br></div><div><br></div><font face="courier new,monospace">class FaskeStdout</font>(<font face="courier new,monospace">object):<br>
<br></font><div style="margin-left:40px"><font face="courier new,monospace">can_write = 1</font><br></div><div style="margin-left:40px"><br></div><div style="margin-left:40px"><font face="courier new,monospace">def write(</font>self, data):<br>
</div><div style="margin-left:80px"><font face="courier new,monospace">if self.can_write:<br></font></div><div style="margin-left:80px"><div style="margin-left:40px"><font face="courier new,monospace">_stdout.write(data)<br>
</font></div></div><br></div><span style="font-family:courier new,monospace">sys.stdout = FakeStdout()</span><br><br></div><font face="courier new,monospace">print "stampa sullo stdout"<br></font></div><font face="courier new,monospace">sys.stdout.can_write = 0<br>
</font></div><font face="courier new,monospace">print "non stampa sullo stdout"<br><br></font></div><font face="courier new,monospace"><font face="arial,helvetica,sans-serif">La seconda soluzione sarebbe creare la tua funzione print con un alias (e.g. <span style="font-family:courier new,monospace">print_log()</span>) e modidicare tutto il codice con un semplice find&replace, cosė potrai controllare la meglio tutta questa parte in futuro.</font><br>
<span style="font-family:arial,helvetica,sans-serif"><br></span></font></div><span style="font-family:arial,helvetica,sans-serif">Saluti,<br></span></div><font face="courier new,monospace"><span style="font-family:arial,helvetica,sans-serif">Federico F.</span></font><br>
</div>