Consequences of importing the same module multiple times in C++?

Aaron Brady castironpi at gmail.com
Sat Oct 25 19:04:59 EDT 2008


On Oct 24, 2:23 pm, Robert Dailey <rcdai... at gmail.com> wrote:
> Hi,
>
> 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?
>
> Thanks.

Docs:

Note
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 mailing list