On 1/31/2010 4:17 PM, _wolf wrote:

but why does ``__builtins__`` change its meaning depending on whether
this is the scope of the ‘script’ (i.e. the module whose name was
present, when calling ``python foobar.py``) or whether this is the
scope of a secondary module (imported or executed, directly or
indirectly, by ``foobar.py``)?

There is a technical reason, which I believe Guido once gave in a post to the now-closed py3k list as part of the thread on the change to a single name. I do not remember, but I presume it has something to do with a difference between executing the main module and imported modules. Rest assured that it is intentional and has a reason. You can, of course, check if __name__ == '__main__': to know how to access.

Terry Jan Reedy


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to