where to import

Terry Reedy tjreedy at udel.edu
Thu Feb 17 16:45:48 EST 2011

On 2/17/2011 12:27 PM, andrea crotti wrote:

> Well no I wasn't really worried about performances.
> I just thought that if an external module is really almost never used,
> it might make sense to import it only when it's really needed.

If the module is only used in one function and the function may called 0 
or 1 times, them yes, it makes some sense. But as soon as the function 
is called multiple times, or the module is used in more than one 
function, or someone wants to quickly look at the file to determine its 
dependencies, then local imports become more trouble than they are worth.

For instance, suppose a new maintainer adds a function to the module 
that needs something from another module. If all imports are at the top, 
then it is trivial to see what imports are already made and whether they 
need modification.

I believe the stdlib used to have some local imports, and might still, 
for all I know. PEP 8 is is based on long-term experience with the 
multi-maintainer stdlib as well as some stylistic preferences.

Terry Jan Reedy

More information about the Python-list mailing list