[Python-Dev] transitioning from % to {} formatting (original) (raw)

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


Barry Warsaw <barry 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