[Python-ideas] py3k: adding "print" methods to file-like objects
Guido van Rossum
guido at python.org
Fri Mar 14 19:31:44 CET 2008
On Thu, Mar 13, 2008 at 3:56 PM, Erick Tryzelaar
<idadesub at users.sourceforge.net> wrote:
> This might be a minor thing, but I kind of wish that I could write this:
>
> sys.stderr.print('first line')
> sys.stderr.print('another line here')
> sys.stderr.print('and again')
>
> instead of:
>
> print('first line', file=sys.stderr)
> print('another line here', file=sys.stderr)
> print('and again', file=sys.stderr)
>
> As it's a lot easier to read for me. Of course you can always add
> spaces to make the lines line up, but with a long print statement your
> eye has to go a long distance to figure out what file, if any, you're
> printing to. It could be pretty simple to add:
>
> class ...:
> def print(*args, **kwargs):
> io.print(file=self, *args, **kwargs)
>
> I haven't been able to find any discussion on this, has this already
> been rejected?
It was brought up, considered, and rejected. The reason is that it
would require *every* stream-like object to implement the print()
functionality, which is rather hairy; or subclass a specific base
class, which we traditionally haven't required. Making it function
that takes a file argument avoids these problems.
And, by the way, it's too late to bring up new py3k proposals.
--
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-ideas
mailing list