[Python-3000] PEP 3101 clarification requests

Talin talin at acm.org
Sat Aug 18 03:48:54 CEST 2007


Wow, excellent feedback. I've added your email to the list of reminders 
for the next round of edits.
Jim Jewett wrote:
> The PEP says:
>> The general form of a standard format specifier is:
>> [[fill]align][sign][width][.precision][type]
>> but then says:
>> A zero fill character without an alignment flag
> implies an alignment type of '='.
>> In the above form, how can you get a fill character without an
> alignment character? And why would you want to support it; It just
> makes the width look like an (old-style) octal. (The spec already
> says that you need the alignment if you use a digit other than zero.)
>> --------------
>> The explicit conversion flag is limited to "r" and "s", but I assume
> that can be overridden in a Formatter subclass. That possibility
> might be worth mentioning explicitly.
>> --------------
>>> 'check_unused_args' is used to implement checking
> for unused arguments ... The intersection of these two
> sets will be the set of unused args.
>> Huh? I *think* the actual intent is (args union kwargs)-used. I
> can't find an intersection in there.
>> -----------------
> This can easily be done by overriding get_named() as follows:
>> I assume that should be get_value.
>> class NamespaceFormatter(Formatter):
> def __init__(self, namespace={}, flags=0):
> Formatter.__init__(self, flags)
>> but the Formatter class took no init parameters -- should flags be
> added to the Formatter constructor, or taken out of here?
>> The get_value override can be expressed more simply as
>> def get_value(self, key, args, kwds):
> try:
> # simplify even more by assuming PEP 3135?
> super(NamespaceFormatter, self).get_value(key, args, kwds)
> except KeyError:
> return self.namespace[name]
>> The example usage then takes globals()...
>> fmt = NamespaceFormatter(globals())
> greeting = "hello"
> print(fmt("{greeting}, world!"))
>> Is there now a promise that the objects returned by locals() and
> globals() will be "live", so that they would reflect the new value of
> "greeting", even though it was set after the Formatter was created?
>> -jJ
> _______________________________________________
> Python-3000 mailing list
> Python-3000 at python.org
> http://mail.python.org/mailman/listinfo/python-3000
> Unsubscribe: http://mail.python.org/mailman/options/python-3000/talin%40acm.org
>


More information about the Python-3000 mailing list

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