Best practice is to import every module that defines identifiers you need, and use those identifiers as qualified by the module's name; I recommend using from
only when what you're importing is a module from within a package. The question has often been discussed on SO.
Importing a module, say moda
, from many modules (say modb
, modc
, modd
, ...) that need one or more of the identifiers moda
defines, does not slow you down: moda
's bytecode is loaded (and possibly build from its sources, if needed) only once, the first time moda
is imported anywhere, then all other imports of the module use a fast path involving a cache (a dict mapping module names to module objects that is accessible as sys.modules
in case of need... if you first import sys
, of course!-).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…