[Python-Dev] transitioning from % to {} formatting (original) (raw)
Vinay Sajip vinay_sajip at yahoo.co.uk
Thu Oct 1 08:51:34 CEST 2009
- Previous message: [Python-Dev] transitioning from % to {} formatting
- Next message: [Python-Dev] transitioning from % to {} formatting
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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)
- Previous message: [Python-Dev] transitioning from % to {} formatting
- Next message: [Python-Dev] transitioning from % to {} formatting
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]