user506710
user506710

Reputation:

Is importing a file good in Python

I have around 80 lines of a function in a file. I need the same functionality in another file so I am currently importing the other file for the function.

My question is that in terms of running time on a machine which technique would be better :- importing the complete file and running the function or copying the function as it is and run it from same package.

I know it won't matter in a large sense but I want to learn it in the sense that if we are making a large project is it better to import a complete file in Python or just add the function in the current namespace.....

Upvotes: 0

Views: 155

Answers (5)

John La Rooy
John La Rooy

Reputation: 304375

If the two modules are unrelated except for that common function, you may wish to consider extracting that function (and maybe other things that are related to that function) into a third module.

Upvotes: 0

DGH
DGH

Reputation: 11549

The whole point of importing is to allow code reuse and organization.

Remember too that you can do either

import MyModule

to get the whole file or

from MyModule import MyFunction

for when you only need to reference that one part of the module.

Upvotes: 0

khachik
khachik

Reputation: 28703

Copy/Paste cannot be better. Importing affects load-time performance, not run-time (if you import it at the top-level).

Upvotes: 0

user225312
user225312

Reputation: 131737

Importing is good cause it helps you manage stuff easily. What if you needed the same function again? Instead of making changes at multiple places, there is just one centralized location - your module.

In case the function is small and you won't need it anywhere else, put it in the file itself.

If it is complex and would require to be used again, separate it and put it inside a module.

Performance should not be your concern here. It should hardly matter. And even if it does, ask yourself - does it matter to you?

Upvotes: 1

Karl Knechtel
Karl Knechtel

Reputation: 61617

Importing is how you're supposed to do it. That's why it's possible. Performance is a complicated question, but in general it really doesn't matter. People who really, really need performance, and can't be satisfied by just fixing the basic algorithm, are not using Python in the first place. :) (At least not for the tiny part of the project where the performance really matters. ;) )

Upvotes: 4

Related Questions