[Python-Dev] Challenge about print >> None
Barry A. Warsaw
bwarsaw@beopen.com
Fri, 8 Sep 2000 11:27:24 -0400 (EDT)
>>>>> "VM" == Vladimir Marangozov <Vladimir.Marangozov@inrialpes.fr> writes:
VM> Seems like people are very surprised to see "print >> None"
VM> defaulting to "print >> sys.stderr". I must confess that now
VM> that I'm looking at it and after reading the PEP, this change
VM> lacks some argumentation.
sys.stdout, not stderr.
I was pretty solidly -0 on this extension, but Guido wanted it (and
even supplied the necessary patch!). It tastes too magical to me,
for exactly the same reasons you describe.
I hadn't thought of the None == /dev/null equivalence, but that's a
better idea, IMO. In fact, perhaps the printing could be optimized
away when None is used (although you'd lose any side-effects there
might be). This would actually make extended print more useful
because if you used
print >> logfile
everywhere, you'd only need to start passing in logfile=None to
disable printing. OTOH, it's not to hard to use
class Devnull:
def write(self, msg): pass
logfile=Devnull()
We'll have to wait until after the weekend for Guido's pronouncement.
-Barry