Python: How to Import a Class (4 Easy Ways)

by | Python

Ever wondered how to harness the power of your classes across different modules without rewriting your code from scratch? Or perhaps you’ve been puzzled by the mysterious import statement that’s common in Python code?

To import a class in Python, you have to use the “import”keyword followed by the class name. For example, “import MyClass” will import the module class “MyClass” from a module or file. To import MyClass from module.py, you would write “from module import MyClass” at the beginning of your script.

This article will provide a roadmap to the import system in Python, with a focus on importing classes. We’ll specifically go over four ways you can import classes in Python.

Let’s dive in!

Python How to Import a Class

4 East Ways to Import a Class in Python

In Python, classes can be imported from different files to improve organization and code readability. This section will guide you through importing a single class and multiple classes. Let’s get started.

1. Importing a Single Class Using the Import Command

First, you have to create a class in a separate Python file. For example, let’s say you have a file named shapes.py containing a class called Circle that calculates the area of a circle.

Importing a single class from current program

Now, in another file in Python where you want to use the Circle class to find the area of a circle with a radius of 5, import it using the from {file} import {class} syntax.

Importing a single new class from main file

In this example, the Circle class is imported from the shapes.py file and used in the main.py file. You’ll get this output:

Importing a Single Class - Output

2. Importing Multiple Classes Using the Import Command

You can also import multiple classes from the same file. Let’s say you have another class named Rectangle that finds the area of a rectangle in the same shapes.py file.

Importing two classes from different file

To import both the Circle and Rectangle classes from the same folder, you have to modify the import statement in the main.py Python file in the following way:

Importing classes with respective objects from other programs

Now, both Circle and Rectangle classes are accessible in the main.py file, allowing you to create instances and use their methods to find the area of a circle and a rectangle.

You’ll get this output, which is the area of a circle with a radius of 5 and the area of a rectangle with a width of 3 and height of 4:

Class square from importing two classes

Remember, when importing classes, it’s essential to maintain a clear and organized code structure. It’ll help you to easily find and use all the class definitions.

3. Importing Classes from Another Folder in the Parent Folder Using Import SYS Command

Imagine that you have the MyFile.py file in the following location:

import_classes_from_another_folder/Inner_Project/MyFile.py

And its contents are two classes, including one called Square that calculates the square of a number:

Importing classes from other files

Now, you want to import MyFile.py to your main.py file in the following location in the same directory:

import_classes_from_another_folder/Project2/main.py

So, how can you do it?

The process is quite simple. You just need to use the sys.path.insert(0,“..”) command, which tells the interpreter to look from the parent folder to take out the desired class from the other file.

Here’s the code:

Importing a class from another file

The sys.path.insert(0,”..”) command will retrieve the class Square from MyFile.py, and you’ll get this output, which is the square of 3:

Importing classes from a different folder

Before importing, make sure to include the init.py file in the Inner_Project folder that will contain your classes. It will enable you to tell the interpreter that your project is within the same package.

4. Import All Classes From One File Using Import * Command

In Python programming, there can be scenarios where you want to import all the classes from another module.

In these instances, Python offers a simple and efficient way to achieve this with the import * command. This command, also known as the wildcard import, allows you to import everything — classes, functions, variables — from a module.

To use this command, you would write:

from module_name import *

In this command, module_name is the name of the .py file you’re importing from (without the .py extension), and `*` is a wildcard operator that stands for “everything”.

For example, if you have a module named shapes.py with classes such as Circle, Rectangle, and Triangle, and you want to import all these classes, you would write:

from shapes import *

After this statement, Circle, Rectangle, and Triangle are all available for use in the current module.

However, it’s important to note that while the import * command is a quick and easy way to import everything from a module, it’s generally not recommended for larger projects. This is mainly due to two reasons:

  1. Namespace Pollution: The import * statement brings all names from the imported module into the local namespace, which can lead to conflicts if different modules have classes or functions with the same name.
  2. Code Readability: When someone reads your code, it’s not immediately clear which module a particular class or function comes from, which can make your code harder to understand.

For these reasons, it’s often better to use explicit class imports (which we’ll cover in the next section) or to import the entire module and access the classes via the module name.

Nevertheless, it’s good to know how import * works, as you may come across it in other people’s code, or find it useful in small, personal projects.

Final Thoughts

Python Logo

In this article, you’ve learned how to import a specific class in Python. We’ve explored different methods, including importing a single class and multiple classes using import statements, and importing classes from separate files or multiple files in the parent directory using the sys.path.insert() command.

Importing specific classes using the import and from keywords ensures a clear and concise codebase, fostering better code maintenance and understanding for others.

It also enables you to implement modular programming, which helps you to reuse code and structure your programs more effectively just like experienced programmers.

If you enjoyed this article, check out our guide on how to import modules from their parent directory. You can also check out our extensive playlist on how to use Python for various tasks below:

Frequently Asked Questions

Python programmer using the import statement

Can I import a class in Python?

Yes, you can import a class in Python using the import command. For example, you can use from module import ClassName or import module if the class is defined in a module.

Where do I import a class in Python? 

You import a class in Python at the beginning of your script or module using the import statement. For example: from module import ClassName

How to add a class in Python? 

To add a class in Python, use the “class” keyword followed by the class name and its attributes. Here is an example:

class MyClass:
    def __init__(self, name):
        self.name = name

    def greet(self):
        print("Hello, " + self.name)

Why can’t I import classes in Python?

Importing classes in Python requires using the correct syntax. If you don’t identify errors, make sure that the class is defined in a module accessible from the import location. For example, if the class “MyClass” is defined in module.py, import it using from module import MyClass.

What is init in Python? 

The init method in Python is a special method used to initialize objects of a class. It is called automatically when an object is created from the class.

author avatar
Sam McKay, CFA
Sam is Enterprise DNA's CEO & Founder. He helps individuals and organizations develop data driven cultures and create enterprise value by delivering business intelligence training and education.

Related Posts