[Python-Dev] Replacement for print in Python 3.0
Nick Coghlan
ncoghlan at gmail.com
Sun Sep 4 04:43:48 CEST 2005
Bill Janssen wrote:
> Steven,
>
>
>>Did you see Nick Coghlan's post?
>> http://mail.python.org/pipermail/python-dev/2005-September/056076.html
>>I found his arguments to be reasonably compelling.
>
>
> You were already convinced on Friday, so with you, he was preaching to
> the choir. I'm not surprised you found those "arguments" compelling.
>
> I did not.
>
> I thought it was rather weak. The "points" he makes seem either
> irrelevant or style judgements, and many seem mischaracterized by the
> words used.
>
> Point by point:
>
>
>>"Print as statement" => printing sequences nicely is a pain
>>"Print as function" => extended call syntax deals with sequences nicely
>
>
> True, but I see it as a weakness in the Python string formatting
> language, instead of a weakness with "print". I think that print
> should be extended with a printf-like format argument (or replaced
> with a "printf" statement), and that the formatting available in this
> format argument should handle this complaint.
I agree with this point actually. There should be an "iterable" formatting
code that looks something like "%[sep]i"
Then "%i" % (my_seq,) would be the equivalent of "".join(my_seq), only
allowing it to be easily embedded inside a larger format string.
Some other examples:
("% i" % my_seq) => " ".join(my_seq)
("%, i" % my_seq) => ", ".join(my_seq)
I see this as being similar to the way that "%.2f" controls the way that a
floating point value is displayed.
> I think what Nick really is asking for is a better print statement --
> and there's no particularly good reason to move to a function to
> attain that end. Let's add a good format specifier to "print",
> instead.
The real driver is that Guido wants to change it, but I'm actually starting to
think I like having the print statement, and what I really want is a 'format'
builtin to get around the tuple-related quirks of the string mod operator, and
an enhancement to the string mod operator to deal better with iterables.
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
---------------------------------------------------------------
http://boredomandlaziness.blogspot.com
More information about the Python-Dev
mailing list