on Mon Oct 27 2008, "Robert Dailey" <rcdailey-AT-gmail.com> wrote:
> On Fri, Oct 24, 2008 at 1:07 PM, Stefan Seefeld <[EMAIL PROTECTED]> wrote: > > Robert Dailey wrote: > > Hi, > > What happens if I do the following? > > using namespace boost::python; > > import( "__main__" ).attr( "new_global" ) = 40.0f; > import( "__main__" ).attr( "another_global" ) = 100.0f: > > My main concern here is performance. I'm wondering if each call to > import() results in a disk query for the script in question and loads > it > from there. I'm also wondering if the second import() above will > simply > read from a memory cache or something. > > As the above code is only a wrapper around the Python runtime, you are > really > asking about how Python handles repeated 'import' calls. I'm pretty sure > importing a module while it is already imported will do (almost) nothing. > However, I'm not sure whether a module is actually unloaded as soon as > the last > reference goes away (such as after the first line above is completed), so > I > can't give a definite answer. > > I'm sure you'll get better answers when asking on a Python forum directly. > > I posted about this on the Python mailing list but I'm receiving no responses > :( Python keeps a dictionary in sys.modules that maps module names to module objects. Import looks there first and doesn't hit the filesystem if it finds anything. -- Dave Abrahams BoostPro Computing http://www.boostpro.com _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig