When pickle.py needs to import a module by name, it goes through a
peculiar dance of

            __import__(module, level=0)
            mod = sys.modules[module]

As far as I can tell, unless builtins.__import__ is overridden or
sys.modules clobbered by user code, the above should be equivalent to

            mod = __import__(module, level=0)

Note that the optimized _pickle implementation does not do the
sys.modules lookup and simply uses the module returned by
__import__(..).  This code goes back to 1999, so there was probably a
good reason back then to write it this way.   Presently, however, it
seems to be just another obscure difference between C and Python
implementation of pickle.
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to