[Python-Dev] statically nested scopes
Guido van Rossum
guido@python.org
Thu, 02 Nov 2000 01:02:10 -0500
> If we get lexical scoping, there should be a fast (built-in) way to
> get at all the accessible names from Python. I.e. currently I can do
>
> d = globals().copy()
> d.update(locals())
>
> and know that `d' contains a dictionary of available names, with the
> right overloading semantics. (PEP 42 now includes a feature request
> to make vars() do this by default.)
Note that I just deleted that feature request from PEP 42 -- vars() or
locals() returns the dictionary containing the variables, and you
can't just change the semantics to return a newly copied dictionary
(which could be quite expensive too!).
I don't think you need to have a mechanism to find all accessible
names; I don't see a common use for that. It's sufficient to have a
mechanism to look up any specific name according to whatever mechanism
we decide upon. This is needed for internal use of course; it can
also be useful for e.g. variable substitution mechanisms like the one
you recently proposed or Ping's Itmpl.
--Guido van Rossum (home page: http://www.python.org/~guido/)