Nick Coghlan wrote:
s...@pobox.com wrote:
My
apologies if I don't understand some amazing generality about format()
format("Header", '=^20s')
'=======Header======='
"Format a single object {0!r}, multiple times in a single string.
Year: {0.year}; Month: {0.month}; Day: {0.day}; Formatted:
{0:%Y-%M-%d}".format(datetime.now())
'Format a single object datetime.datetime(2009, 12, 6, 9, 16, 0,
875018), multiple times in a single string. Year: 2009; Month: 12; Day:
6; Formatted: 2009-16-06'
"Use keyword arguments easily: {x}, {y}, {z}".format(x=1, y=2, z=3)
'Use keyword arguments easily: 1, 2, 3'
For the things that mod formatting already allows you to do, our aim is
to get format() functionality at least on par with what mod formatting
supports (it should be most of the way there with the number formatting
cleanups for 2.7/3.2). For the rest of the features (explicit position
references, centre alignment, arbitrary fill characters, attribute and
subscript references, type defined formatting control), mod formatting
isn't even in the game.
Getting rid of the magic behaviour associated with the use of tuples on
the right hand side is also valuable:
"%s" % (1, 2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not all arguments converted during string formatting
"{}".format((1, 2))
'(1, 2)'
A nice demonstration of what an excellent piece of work the new .format
is or is becoming. I would still like it to be a goal for 3.2 that all
stdlib modules that work with formats accept the new formats and not
just % formats.
Mark Summerfield only covered .format in his book on Python 3 programimg
and I hated to tell him that there was at least one module in the stdlib
that currently (3.1) requires the old style.
Terry Jan Reedy
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com