[Python-3000] PEP 3101 Updated

Eric Smith eric+python-dev at trueblade.com
Thu Aug 23 02:10:11 CEST 2007


Ron Adam wrote:
>> I've been re-reading the PEP, in an effort to make sure everything is 
>> working. I realized that these tests should not pass. The PEP says 
>> that "Format specifiers can themselves contain replacement fields". 
>> The tests above have replacement fields in the field name, which is 
>> not allowed. I'm going to remove this functionality.
>>>> I believe the intent is to support a replacement for:
>> "%.*s" % (4, 'how now brown cow')
>>>> Which would be:
>> "{0:.{1}}".format('how now brown cow', 4)
>>>> For this, there's no need for replacement on field name. I've taken 
>> it out of the code, and made these tests in to errors.
>> I think it should work myself, but it could be added back in later if 
> there is a need to.
>>> I'm still concerned about the choice of {{ and }} as escaped brackets.
>> What does the following do?
>>> "{0:{{^{1}}".format('Python', '12')

 >>> "{0:{{^{1}}".format('Python', '12')
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ValueError: unterminated replacement field
But:
 >>> "{0:^{1}}".format('Python', '12')
' Python '
> "{{{0:{{^{1}}}}".format('Python', '12')
 >>> "{{{0:{{^{1}}}}".format('Python', '12')
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ValueError: Unknown conversion type }
But,
 >>> "{{{0:^{1}}".format('Python', '12')
'{ Python '
> class ShowSpec(str):
>> return spec
>> ShowSpec("{0:{{{1}}}}").format('abc', 'xyz')
>
 >>> ShowSpec("{0:{{{1}}}}").format('abc', 'xyz')
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ValueError: Invalid conversion specification
I think you mean:
ShowSpec("{0:{1}}").format('abc', 'xyz')
But I have some error with that. I'm looking into it.
> "{0}".format('{value:{{^{width}}', width='10', value='Python')

 >>> "{0}".format('{value:{{^{width}}', width='10', value='Python')
'{value:{{^{width}}'


More information about the Python-3000 mailing list

AltStyle によって変換されたページ (->オリジナル) /