"John [H2O]" <washa...@gmail.com> wrote: > So it isn't inefficient to import a bunch of modules that may not be > used, say if only one function is used that doesn't rely on a larger > module like numpy or pylab? > Not really. If you import it at all then you might as well import it on startup i.e. at the top of the module. Importing from inside a function doesn't free up the imported module when the function returns, so you aren't going to save any memory in the long run.
I would accept that if you have a function that may not be called in most runs of the program, and that function uses some large module that wouldn't otherwise be loaded, then you might have a case for importing it only inside the function. But that's a very rare situation; otherwise, just import it at module scope. BTW, if you ever find you are starting to write multi-threaded applications then you'll really regret it if you reuse code which does imports from inside functions. If two or more threads try to import a module simultaneously then one of them might find it that not everything is defined in the module exists when it tries to use it. -- http://mail.python.org/mailman/listinfo/python-list