[Python-Dev] transitioning from % to {} formatting

Vinay Sajip vinay_sajip at yahoo.co.uk
Thu Oct 1 08:51:34 CEST 2009


Barry Warsaw <barry <at> python.org> writes:
>> This is a very interesting idea.
>> Note that one of the reasons to /at least/ support {}-strings also is 
> that %-strings are simply too error prone in many situations. For 
> example, if I decide to support internationalization of log format 
> strings, and all I can use is %-strings, it's almost guaranteed that I 
> will have bugs because a translator forgot the trailing 's'. This 
> exactly the motivation that led to PEP 292 $-strings.
>> In fact, while we're at it, it would be kind of cool if I could use $- 
> strings in log templates. Antoine's idea of accepting a callable 
> might fit that bill nicely.

You're already covered if you use the PercentMessage/BraceMessage approach I
mentioned elsewhere in this thread. Suppose:
#Just typing this in, it's not tested or anything
class DollarMessage:
 def __init__(self, fmt, *args, **kwargs):
 self.fmt = fmt
 self.args = args
 self.kwargs = kwargs
 def __str__(self):
 return string.Template(self.fmt).substitute(*args, **kwargs)


More information about the Python-Dev mailing list

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