I have a file, myfile.py, which imports Class1 from file.py and file.py contains imports to different classes in file2.py, file3.py, file4.py.
In my myfile.py, can I access these classes or do I need to again import file2.py, file3.py, etc.?
Does Python automatically add all the imports included in the file I imported, and can I use them automatically?
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
fromonly 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 (saymodb,modc,modd, …) that need one or more of the identifiersmodadefines, does not slow you down:moda‘s bytecode is loaded (and possibly build from its sources, if needed) only once, the first timemodais 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 assys.modulesin case of need… if you firstimport sys, of course!-).