Raj
Raj

Reputation: 161

python multiple imports for a common module

I am working on a project wherein I need to use a third party module in different project files(.py files). The situation is like this.

I have a file "abc.py" which imports third party module "common.py". There are couple of other files which also import "common.py". All these files are also imported in main project file "main.py".

It seems redundant to import same module in your project multiple times in different files since "main.py" is also importing all the project files.

I am also not sure how the size of the project gets affected by multiple import statements.

Can someone pls help me in making things bit simpler.

Upvotes: 11

Views: 7879

Answers (2)

Amber
Amber

Reputation: 526483

Importing only ever loads a module once. Any imports after that simply add it to the current namespace.

Just import things in the files you need them to be available and let Python do the heavy-lifting of figuring out loading the modules.

Upvotes: 21

Alexey
Alexey

Reputation: 31

Yes, you are right, this behavior really exists in Python. Namely, if user code tries to import the same module in different ways, for example - import a and import A.a (where a.py file is located into A package and the first import is done from within the A package while the other import comes as from outside).

This can easily happen in real life, especially for multi-level packaged Python projects.

I have experienced a side-effect of such behavior, namely command isinstance does not work when an object is checked against a class that is defined in module that was imported in such way.

The solution I can think about is to redefine the __builtin__. __ import__ function to perform its work more intelligently.

Upvotes: 3

Related Questions