Modules and Packages
What Are Modules and Packages?
Imagine you have a huge box of LEGO bricks. Building something big and complex would be hard if all the pieces were mixed up. So, you might want to organize them into smaller boxes: one for wheels, one for windows, one for doors, etc. This makes it much easier to find the pieces you need.
In Python, a module is like one of those smaller boxes. It’s a file that contains some Python code, such as functions, variables, or classes, that you can use in your programs. A package is like a bigger box that contains several modules. It’s a way to organize your code into folders and subfolders.
Why Use Modules and Packages?
- Organization: Just like sorting your LEGO bricks, modules and packages help keep your code neat and tidy.
- Reuse: You can use the same module in different programs without rewriting the code.
- Maintenance: It’s easier to find and fix bugs when your code is organized into smaller, manageable pieces.
Creating and Using a Module
Let’s start by creating a simple module.
- Create a Module: Open your text editor and write the following code:
# my_module.py
def greet(name):
return f"Hello, {name}!"
PI = 3.14159
- Save the File: Save this file as
my_module.py
. Now you have a module! - Use the Module: You can use this module in another Python file.
# main.py
import my_module
print(my_module.greet("Alice"))
print("The value of PI is:", my_module.PI)
When you run main.py
, you will see:
Hello, Alice!
The value of PI is: 3.14159
Creating and Using a Package
Now, let’s create a package. A package is a folder that contains multiple modules.
- Create a Package Folder: Create a new folder named
my_package
. - Add an
__init__.py
File: Insidemy_package
, create a file named__init__.py
. This file can be empty, but it tells Python that this folder is a package. - Add Modules to the Package: Create two modules inside
my_package
:
# my_package/math_operations.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
# my_package/string_operations.py
def uppercase(text):
return text.upper()
def lowercase(text):
return text.lower()
- Use the Package: Now you can use these modules in another Python file.
# main.py
from my_package import math_operations, string_operations
print(math_operations.add(5, 3))
print(math_operations.subtract(10, 4))
print(string_operations.uppercase("hello"))
print(string_operations.lowercase("WORLD"))
When you run main.py
, you will see:
8
6
HELLO
world
Practice Questions
- Question: Create a module named
calculator.py
with functions to multiply and divide two numbers. Then, use these functions in another Python file.
Solution:
# calculator.py
def multiply(a, b):
return a * b
def divide(a, b):
if b != 0:
return a / b
else:
return "Cannot divide by zero!"
# main.py
import calculator
print(calculator.multiply(6, 7))
print(calculator.divide(10, 2))
print(calculator.divide(5, 0))
Output:
42
5.0
Cannot divide by zero!
- Question: Create a package named
shapes
with two modules:circle.py
andrectangle.py
. Incircle.py
, write a function to calculate the area of a circle. Inrectangle.py
, write a function to calculate the area of a rectangle. Use these functions in another Python file.
Solution:
# shapes/circle.py
PI = 3.14159
def area(radius):
return PI * (radius ** 2)
# shapes/rectangle.py
def area(length, width):
return length * width
# main.py
from shapes import circle, rectangle
print(circle.area(5))
print(rectangle.area(4, 6))
Output:
78.53975
24
Summary
- Modules: Files containing Python code (functions, variables, classes).
- Packages: Folders containing multiple modules, organized with an
__init__.py
file. - Benefits: Help organize, reuse, and maintain your code.
By using modules and packages, you can keep your code clean, organized, and easy to manage. Happy coding!