Python importing
Question: 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?


Answer: 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!-).

