[Python-Dev] PEP 292, Simpler String Substitutions

Paul Prescod paul@prescod.net
Tue, 18 Jun 2002 21:46:33 -0700


"Barry A. Warsaw" wrote:
> 
>...
    The mapping argument is optional; if it is omitted then the
>     mapping is taken from the locals and globals of the context in
>     which the .sub() method is executed.  For example:
> 
>         def birth(self, name):
>             country = self.countryOfOrigin['name']
>             return '${name} was born in ${country}'
> 
>         birth('Guido')

You forgot the "implicit .sub"() feature.

>...

>     - We can simply allow the exception (likely a NameError or
>       KeyError) to propagate.

Explicit!

>     - We can return the original substitution placeholder unchanged.

Silently guess???

Overall it isn't bad...it's a little weird to have a method that depends
on sys._getframe(1) (or as the say in Tcl-land "upvar"). It may set a
bad precedent...

 Paul Prescod