[Python-3000] String formating operations in python 3k

Walter Dörwald walter at livinglogic.de
Mon Apr 3 01:48:40 CEST 2006


Crutcher Dunnavant wrote:

> On 4/2/06, Georg Brandl <g.brandl at gmx.net> wrote:
>> Crutcher Dunnavant wrote:
>>> Python currently supports  'S % X', where S is a strinng, and X is one of:
>>> * a sequence
>>> * a map
>>> * treated as (X,)
>>>
>>> But I have some questions about this for python 3000.
>>>
>>> 1. Shouldn't there be a format method, like S.format(), or S.fmt()?
>> Possible, but why? "%" works quite fine. "Abusing" the modulus operator
>> is okay in this context since the symbol gives a nonoverseeable clue to
>> what the construct is doing.
> 
> Why? Because:
> 1 It is trivially cheap, format() would be the same function as __rmod__
> 2 It adds consistency with lower(), strip(), and other methods which
> produce new strings.
> 3 I am not arguing _against_ syntactic support, I am arguing _for_ a method;
>    we can keep the syntactic support.

and it avoids one problem you might run into with %: If you have only 
one argument, writing ``s % (x,)`` as ``s % x`` will break when the 
argument x happens to be a tuple. You won't have this problem with 
s.format(x).

Bye,
    Walter Dörwald



More information about the Python-3000 mailing list