Brad Harms wrote:
Well, yes, the names would have to be determined at run time. That's what getattr and setattr do, except that that do it in the context of an object rather than the local scope. However, I was under the impression that python's mechanism for looking up local names was the same as the mechanism used to look up attributes because names and attributes seem to function pretty much the same way. This I assumed because of the functionality of the locals() and globals() functions, which seem to act like the __dict__ attribute on objects except that the work on the current scope.
The definition of locals() allows it to just be a dict *copy* of the local namespace, rather than the local namespace itself. Within functions, (at least for CPython, and probably for other implementations), locals() is just a copy, and changes to locals() are *not* propagated back to the local namespace. Within functions, local name 'lookup' has nothing to do with dict lookup. (It is more like list indexing.)
-- http://mail.python.org/mailman/listinfo/python-list