Introduction
In Python, A module is a file containing Python code such as variables, functions, classes, and statements that can be reused in other Python programs. Modules help organize code into separate files, making applications cleaner and easier to manage.
Python comes with many built-in modules that provide ready-to-use functionality for tasks such as mathematical calculations, file handling, date and time operations, random number generation, and more. Developers can also create their own custom modules and import them whenever needed.
What is a Python Module?
A Python module is simply a file with a .py extension that contains Python code.
Modules allow you to:
- Organize code into separate files
- Reuse code across multiple programs
- Improve readability
- Reduce duplication
- Simplify maintenance
Example:
Suppose you have a file named:
math_operations.py
Contents:
def add(a, b):
return a + b
def multiply(a, b):
return a * b
This file is a Python module.
You can use it in another program by importing it.
Why Use Modules?
Without modules, all code would need to be written in a single file.
Without Modules
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
return a / b
As applications grow, the file becomes difficult to manage.
With Modules
import math_operations
Now all related functions can be stored in one module and reused whenever needed.
Types of Modules in Python
Python supports two main types of modules:
1. Built-in Modules
These modules are included with Python.
Examples:
- math
- random
- datetime
- os
- sys
2. User-Defined Modules
These modules are created by developers.
Example:
calculator.py
Importing a Module
The import keyword is used to load a module.
Syntax
import module_name
Example:
import math
print(math.sqrt(25))
Output:
The math module provides mathematical functions.
Importing Multiple Modules
You can import multiple modules in one statement.
Example:
import math, random
print(math.sqrt(16))
print(random.randint(1, 10))
Importing Specific Functions
Instead of importing an entire module, you can import specific functions.
Syntax
from module_name import function_name
Example:
from math import sqrt
print(sqrt(36))
Output:
Importing Multiple Functions
Example:
from math import sqrt, factorial
print(sqrt(49))
print(factorial(5))
Output:
120
Using Aliases
Aliases provide shorter names for modules.
Syntax
import module_name as alias
Example:
import math as m
print(m.sqrt(64))
Output:
This is useful for modules with long names.
Import Everything from a Module
You can import all functions using *.
Example:
from math import *
print(sqrt(25))
print(factorial(4))
Output:
24
Note: This approach is generally not recommended because it can create naming conflicts.
Creating a Custom Module
Creating your own module is simple.
Step 1: Create a File
File name:
calculator.py
Step 2: Add Functions
def add(a, b):
return a + b
def subtract(a, b):
return a - b
Step 3: Import the Module
import calculator
print(calculator.add(10, 5))
Output:
Accessing Module Functions
Functions inside a module are accessed using dot notation.
Syntax
module_name.function_name()
Example:
import math
print(math.factorial(5))
Output:
Built-in Modules in Python
Python includes many useful modules.
math Module
Used for mathematical operations.
Example:
import math
print(math.pi)
print(math.sqrt(81))
Output:
9.0
random Module
Used for generating random values.
Example:
import random
print(random.randint(1, 100))
Output:
(Output may vary.)
datetime Module
Used for date and time operations.
Example:
import datetime
print(datetime.datetime.now())
Output:
(Output will vary.)
os Module
Used for operating system tasks.
Example:
import os
print(os.getcwd())
Displays the current working directory.
sys Module
Provides system-related functionality.
Example:
import sys
print(sys.version)
Displays the Python version.
The dir() Function
The dir() function displays all available functions and attributes in a module.
Example:
import math
print(dir(math))
Output (Partial):
The help() Function
The help() function provides documentation about a module.
Example:
import math
help(math)
This displays detailed information about the module.
Module Search Path
When Python imports a module, it searches for it in:
- Current directory
- Python installation directories
- Directories listed in sys.path
Example:
import sys
print(sys.path)
This displays the module search locations.
Real-Life Examples:
1. Calculator Module
calculator.py
def add(a, b):
return a + b
def multiply(a, b):
return a * b
main.py
import calculator
print(calculator.add(10, 20))
print(calculator.multiply(5, 4))
Output:
20
2. Employee Management
employee.py
def get_employee():
return "John"
main.py
import employee
print(employee.get_employee())
Output:
3. Online Store
products.py
def get_price():
return 500
main.py
import products
print(products.get_price())
Output:
Advantages of Python Modules
- Code reusability
- Better organization
- Easier maintenance
- Improved readability
- Faster development
- Reduced duplication
- Supports teamwork
Common Mistakes
1. Forgetting to Import the Module
Incorrect:
print(math.sqrt(25))
Error:
Correct:
import math
print(math.sqrt(25))
2. Misspelling Module Names
Incorrect:
import maths
Error:
Correct:
import math
3. Using Functions Without Module Name
Incorrect:
import math
print(sqrt(25))
Error:
Correct:
print(math.sqrt(25))
4. Naming Custom Files Like Built-in Modules
Incorrect:
math.py
This may conflict with Python’s built-in math module.
Use unique names instead.
Best Practices
1. Use Meaningful Module Names
Good:
calculator.py
employee.py
Bad:
test.py
abc.py
2. Import Only What You Need
from math import sqrt
This improves readability.
3. Avoid Using *
Bad:
from math import *
Good:
from math import sqrt
4. Group Related Functions Together
Keep related functions in the same module.
Example:
database.py
Contains database functions only.
Conclusion
Python modules are a fundamental feature that allows developers to organize, reuse, and manage code efficiently. By dividing programs into smaller, reusable files, modules make applications easier to maintain and scale.
Python provides many built-in modules such as math, random, datetime, os, and sys, while also allowing developers to create custom modules for specific needs. Understanding how to import modules, use their functions, create your own modules, and follow best practices is an essential skill for every Python programmer.
Python Module – Interview Questions
Q 1: What is a Python module?
Q 2: How do you use a module in Python?
Q 3: Can a module contain functions and classes?
Q 4: What is a built-in module?
Q 5: Can you create your own module?
Python Module – Objective Questions (MCQs)
Q1. What is a module in Python?
Q2. How do you import a module in Python?
Q3. Which statement imports only the sqrt function from the math module?
Q4. What is the output of the following code?
import math
print(math.pi)
Q5. Where does Python search for modules when you import one?