[Python-Dev] Replacement for print in Python 3.0 (original) (raw)

Terry Reedy tjreedy at udel.edu
Sat Sep 3 05:33:08 CEST 2005


"Guido van Rossum" <guido at python.org> wrote in message news:ca471dc20509021842e586aa3 at mail.gmail.com...

With so many people expressing a gut response and not saying what in the proposal they don't like, it's hard to even start a response. Is it...

For me a bit of several things though with quite variable intensity. First, print, as an abbreviation of looped writes, works fine for its appointed task. It gives me don't-care-about-the-format info on values with near minimal overhead. So change needs clear justification.

- Going from statement to function?

Minor. For quickly adding debug prints, two extra ()s are a small burden, but if the function were called 'out', then there would still be just five keystrokes. Nick's output() convinced me that there are compensations to the function form. Besides, having used the argument of aesthetic consistency elsewhere, I can hardly deny it to you ;-).

- Losing the automatically inserted space?

Major. This is an essential plus of print.

- Having to write more to get a newline appended?

Near major. See above. I believe that two people have reported that around 85% of their prints use these defaults, so I think adding a keyword for something other would be the way to go.

- Losing the name 'print'?

You gave one reason for this as disassociating from Basic. I can see how a CS grad would want to do so, but Basic once was the vehicle for CP4E (computer programming for everyone) that you want Python to become. In fact, I think PSF should promote Python as the 'Basic for the 21st Century' that should be on most desktops the way Basic once was. So I would prefer to see a different reason for a name change.

- [dash added] Some responses seemed to have missed [snip] that I was proposing builtins in addition to the stream methods,

My objections here are first the plural, which does not seem really necessary, and second the longer (in chars and syllables) and also old name 'writeln' from Pascal for the one that does what print does.

I'd like to be flexible on all points except the syntax -- I really want to get rid of print as a statement. [snip] would anyone support a proposal to make it a statement instead?

Good question. Most Python statements benefit from statement syntax because their function syntax equivalent would be a little to hughly more awkward. This is mainly because parts of the statement are implicitly quoted. (Lisp does this with special forms and macros, but I prefer the Python way.) The two syntax tricks in print are different in that they are easily replaced by keywords. So I strongly suspect 'no'.

Terry J. Reedy



More information about the Python-Dev mailing list