Python
Coding
Programming
File Import
Python Scripts

How do I import other Python files?

Interview Questions practice on Codemia

Over 8,000 real interview questions from top companies, searchable by company and role.

Browse interview questions

In Python, programs get larger and more complicated, it becomes necessary to organize code into reusable pieces. Rather than having a monolithic file, you can spread your code across multiple Python files and import them as needed. This helps in module reusability, simplicity, and separation of concerns.

Understanding Python Modules and Packages

A module in Python is simply a Python file with the .py extension that has Python code, functions, classes, variables, runnable code, etc. A package is a directory of Python modules containing an additional __init__.py file.

Importing Standard Modules

For starters, Python comes with a robust standard library of modules. These can be imported easily using the import statement. For example:

python
import math
print(math.sqrt(16))

This will output 4.0 as it uses the sqrt function from the math module.

Importing Custom Modules

To import your own files as modules, you need to create Python scripts and then import them using their filenames (without the .py extension). Suppose you have a file named helper_functions.py and you want to import it, you can do so like this:

python
import helper_functions

If helper_functions.py contains a function named add, you would use it like so:

python
result = helper_functions.add(1, 2)
print(result)  # This will output 3

Using from ... import ...

For cases where you only need certain functions or classes from a module, you can use the from ... import ... syntax. This is useful for importing specific items without having to reference the module name every time.

python
from helper_functions import add
result = add(1, 2)
print(result)  # Outputs 3

Additionally, to import everything from a module (not recommended due to potential namespace conflicts), you can use the asterisk (*):

python
from helper_functions import *

Importing From Packages

If your modules are organized into packages (directories), the import statement varies slightly. Suppose you have a directory structure like this:

 
1mypackage/
23├── __init__.py
4└── submodule.py

You can import the submodule with:

python
from mypackage import submodule

Importing with Aliases

Sometimes, for convenience or to avoid naming conflicts, it's useful to import modules or objects under aliases using the as keyword:

python
import helper_functions as hf
result = hf.add(1, 2)

This will do the same operation as before but allows you to refer to the module by a shorter name.

Handling Import Errors

It's possible that Python might raise an ImportError if it's unable to find the module. This can be due to a number of reasons like module not being in the expected path, wrong module name, etc. Always ensure the module is located in the directory or is within the Python path.

Table: Summary of Python Import System

MethodDescription
import xImports the module x, and it can be referenced as x.
from x import yImports the y object from the module x.
import x as yImports the module x and sets it as an alias y.
from x import *Imports everything from module x into the current namespace.

Best Practices

  • Avoid circular imports: Circular dependencies can happen if two modules end up importing each other.
  • Minimize the use of wildcard imports (from x import *): This can pollute the namespace and makes it unclear which names are present in the namespace.
  • Use absolute imports over relative imports: This makes it clear exactly which modules are being used, and avoids confusion when packages are structured deeply.

By using imports effectively, you can greatly enhance the modularity, reusability, and maintainability of your Python code.


Related reading
Free course
Beginner
7 lessons
2 hours
Tackling System Design Interview Problems

A short course that equips you with the skills to approach system design interviews methodically.

Start the free course
Track what you have practised

A free account saves your progress, solutions and study plan across every problem on Codemia.

Interview Questions practice on Codemia

Over 8,000 real interview questions from top companies, searchable by company and role.

Browse interview questions

All Rights Reserved.