[Python-Dev] Replacement for print in Python 3.0 (original) (raw)
Reinhold Birkenfeld reinhold-birkenfeld-nospam at wolke7.net
Thu Sep 1 18:57:34 CEST 2005
- Previous message: [Python-Dev] Replacement for print in Python 3.0
- Next message: [Python-Dev] Replacement for print in Python 3.0
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Guido van Rossum wrote:
[Charles Cazabon]
>> Perhaps py3k could have a py2compat module. Importing it could have the >> effect of (for instance) putting compile, id, and intern into the global >> namespace, making print an alias for writeln, [Greg Ewing] > There's no way importing a module could add something that > works like the old print statement, unless some serious > magic is going on... [Reinhold Birkenfeld] You'd have to enclose print arguments in parentheses. Of course, the "trailing comma" form would be lost. And good riddance! The print statement harks back to ABC and even (unvisual) Basic. Out with it!
Here I have to agree with Barry. print is very handy, and print>> is, too.
I'd rather see exec and assert becoming a function.
A transitional strategy could be to start designing the new API and introduce it in Python 2.x. Here's my strawman:
(1) Add two new methods the the stream (file) API and extend write(): stream.write(a1, a2, ...) -- equivalent to map(stream.write, map(str, [a1, a2, ...])) stream.writeln(a1, a2, ...) -- equivalent to stream.write(a1, a2, ..., "\n") stream.writef(fmt, a1, a2, ...) -- equivalent to stream.write(fmt % (a1, a2, ...))
Do we really need writef()? It seems to be not much better than its %-formatting equivalent.
(2) Add builtin functions write(), writeln(), writef() that call the corresponding method on sys.stdout. (Note: these should not just be the bound methods; assignment to sys.stdout should immediately affect those, just like for print. There's an important use case for this.)
If write* is introduced, this is absolutely necessary.
Reinhold
-- Mail address is perfectly valid!
- Previous message: [Python-Dev] Replacement for print in Python 3.0
- Next message: [Python-Dev] Replacement for print in Python 3.0
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]