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