Uploaded on Mar 24, 2025
Modules and Packages in Python
Python
Modules and Packages in Python
Introduction
Python is a powerful and flexible programming language that supports modular programming. This is
achieved through modules and packages, which help organize and reuse code efficiently.
1. Python Modules
A module is a file containing Python code (functions, classes, or variables) that can be imported and
used in other Python programs.
Creating a Module
A module is simply a Python file with a .py extension. For example, mymodule.py:
# mymodule.py
def greet(name):
return f"Hello, {name}!"
Importing a Module
You can import and use the module in another Python file:
import mymodule
print(mymodule.greet("Alice"))
You can also import specific functions:
from mymodule import greet
print(greet("Bob"))
Built-in Modules
Python provides numerous built-in modules, such as math, random, and datetime. Example:
import math
print(math.sqrt(16)) # Output: 4.0
The __name__ Variable
Each module has a built-in __name__ variable. If a module is run directly, __name__ is set to
"__main__", otherwise, it is set to the module name.
if __name__ == "__main__":
print("Module executed directly")
2. Python Packages
A package is a collection of modules organized in a directory containing a special __init__.py file.
Creating a Package
A package consists of multiple modules inside a directory with an __init__.py file:
my_package/
│-- __init__.py
│-- module1.py
│-- module2.py
Importing from a Package
You can import modules from a package as follows:
import my_package.module1
from my_package import module2
Namespace Packages
Python 3.3+ allows packages without __init__.py, known as namespace packages.
3. Differences Between Modules and Packages
Feature Module Package
Definition Single Python file (.py) Collection of modules in a directory
Example math.py numpy package
Import Syntax import module import package.module
4. Advantages of Using Modules and Packages
Code reusability and organization
Easier maintenance and debugging
Supports namespacing to avoid conflicts
Promotes collaborative development
Conclusion
Modules and packages make Python more powerful and maintainable by allowing code organization
into reusable components. Understanding how to create and use them effectively is essential for
writing scalable Python programs.
Comments