Consequences of importing the same module multiple times in C++?
castironpi at gmail.com
Sun Oct 26 01:04:59 CEST 2008
On Oct 24, 2:23 pm, Robert Dailey <rcdai... at gmail.com> wrote:
> I'm currently using boost::python::import() to import Python modules,
> so I'm not sure exactly which Python API function it is calling to
> import these files. I posted to the Boost.Python mailing list with
> this question and they said I'd probably get a better answer here, so
> here it goes...
> If I do the following:
> using namespace boost::python;
> import( "__main__" ).attr( "new_global" ) = 40.0f;
> import( "__main__" ).attr( "another_global" ) = 100.0f:
> Notice that I'm importing twice. What would be the performance
> consequences of this? Do both import operations query the disk for the
> module and load it into memory? Will the second call simply reference
> a cached version of the module loaded at the first import() call?
For efficiency reasons, each module is only imported once per
interpreter session. Therefore, if you change your modules, you must
restart the interpreter – or, if it’s just one module you want to test
interactively, use reload(), e.g. reload(modulename).
More information about the Python-list