Vladimir Marangozov wrote: > > Seems like people are very surprised to see "print >> None" defaulting > to "print >> sys.stderr". I must confess that now that I'm looking at > it and after reading the PEP, this change lacks some argumentation. According to the PEP it defaults to sys.stdout with the effect of working just like the plain old "print" statement. > In Python, this form surely looks & feels like the Unix cat /dev/null, > that is, since None doesn't have a 'write' method, the print statement > is expected to either raise an exception or be specialized for None to mean > "the print statement has no effect". The deliberate choice of sys.stderr > is not obvious. > > I understand that Guido wanted to say "print >> None, args == print args" > and simplify the script logic, but using None in this case seems like a > bad spelling <wink>. > > I have certainly carefully avoided any debates on the issue as I don't > see myself using this feature any time soon, but when I see on c.l.py > reactions of surprise on weakly argumented/documented features and I > kind of feel the same way, I'd better ask for more arguments here myself. +1 I'd opt for raising an exception instead of magically using sys.stdout just to avoid two lines of explicit defaulting to sys.stdout (see the example in the PEP). BTW, I noted that the PEP pages on SF are not up-to-date. The PEP 214 doesn't have the comments which Guido added in support of the proposal. -- Marc-Andre Lemburg ______________________________________________________________________ Business: http://www.lemburg.com/ Python Pages: http://www.lemburg.com/python/
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4