Andrew Durdin wrote:
A Yet Simpler Proposal, modifying that of PEP 292 ... ... placeholders are delimited by braces {}. Do you know about the techinique I use? It works w/o a new library:
Surround-style delimiting, using a single (specifiable) character. def subst(template, _sep='$', **kwds): if '' not in kwds: kwds[''] = _sep # Allow doubled _sep for _sep. parts = template.split(_sep) parts[1::2] = [kwds[element] for element in parts[1::2]] return template[0:0].join(parts) For 2.4, use a generator expression, not a list comprehension: def subst(template, _sep='$', **kwds): if '' not in kwds: kwds[''] = _sep # Allow doubled _sep for _sep. parts = template.split(_sep) parts[1::2] = (kwds[element] for element in parts[1::2]) return template[0:0].join(parts) Then you can use: subst('What I $mean$ is $$5.00', mean='really mean') or subst(u'What I $mean$ is $$5.00', mean=u'really mean') or subst('What I $mean$ is $$5.00', mean='really mean', *locals()) or ... -- Scott David Daniels Scott.Daniels@Acm.Org