[Tutor] general import VS importing inside a function

Alan Gauld alan.gauld at btinternet.com
Sat Aug 29 10:36:09 CEST 2009


"Fidel Sanchez-Bueno" <fidellira.6 at gmail.com> wrote

> What is the best aproach when it comes to import??, is allways better to 
> make all the import calls in the global scope, making the overall runtime 
> of the program better because the program is not going to import 
> something everytime a function is called, or is better to make specific 
> import's inside a function making the function completely portable??

The general concensus is to keep all imports together at the top of the 
module.

I do occasionally put an import inside a function but only if
a) its in an exceptioon block that I don;t expect to be used AND
b) the module takes significant time to load and I care about performance

Those two things don't happen very often so 99% of the time all imports
go at the top.

> and another thing, making specific import, makes the program less, how 
> you said this "RAM eater" (sorry my native language is spanish and i dont 
> now how to translate "cosume menos recursos" google says "cosumes less 
> resources", but anyway i hope you get it)

Unless the module has huge data structures populated within it thats
unlikely to be a significant issue. Usually the memory consumption comes
from the main execution code where the data is defined not the module code.
On a huge project that might be an issue but not on the average Python 
project.

> I say this because, for example when i'm in the interactive shell and 
> import big things like Scipy, and NumPy, python takes 3 to 5 seconds to 
> respond, and if am only going to use like 4 or 5 function inside NumPy i 
> think is better to say just "from Numpy import foo, bar, qux etc"

Thats a different question. :-)
If you are only using a few names from the module the "from x imporrt y "
style is good.

HTH,


-- 
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/




More information about the Tutor mailing list