[Python-Dev] PEP 292, Simpler String Substitutions
Guido van Rossum
guido@python.org
Wed, 19 Jun 2002 16:23:03 -0400
> > > 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...
> >
> > No, the real implementation will be in C. C functions always have
> > access to locals and globals.
>
> I didn't mean it will be a bad precedent because of the implemention. I
> mean that methods do not usually peak into their caller's variables,
> even from C. What other methods do that?
Dunno about methods, but locals(), globals(), vars() and dir() do this
or something like it.
> I'm still "+0" despite being somewhat uncomfortable with that
> aspect.
I think little would be lost if sub() always required a dict (or
perhaps keyword args, although that feels like a YAGNI now).
I think that the key thing here is to set the precedent of using $ and
the specific syntax proposed, not necessarily to have this as a
built-in string methong.
Note: posixpath.expandvars() doesn't have $$, which is essential, and
leaves unknown variables alone, which we (mostly) agree is not the
right thing to do.
--Guido van Rossum (home page: http://www.python.org/~guido/)