davea at davea.name
Wed Sep 24 13:54:58 CEST 2014
Robin Becker <robin at reportlab.com> Wrote in message:
> I'm tryng to bring some outdated ihooks code into the modern world.
> I notice that module loaders are supposed to re-use an existing module if it is
> already in sys.modules.
No, the loader is required to reuse the existing module.
> Is a loader supposed to reset all the reused module's attributes and reset the
> __dict__ or does it just run the code from the module in hte __dict__?
Nothing gets reset or run. It simply reuses the existing module object.
There are ways to fool the loader, for example by having a module
visible in more than one file system path.
The most common of
these bugs is a module that tries to import the script that's
started it all. Because that initial script is named __main__
internally, if you try to import it by filename you end up with
More information about the Python-list