
A. Mục đích nghiên cứu
Tái sử dụng code giữa các dự án.
Tránh lặp lại và giảm độ phức tạp của chương trình lớn.
Hiểu cách import và sử dụng hàm, biến từ file khác.
Bước đầu làm quen với cấu trúc dự án thực tế
B. Nội dung nghiên cứu
Bài 12. Module là gì? Vì sao cần chia module?
Bài 13. Cách tạo và sử dụng module
Bài 14. Package – Nhóm nhiều module vào một thư mục
C. Bài tập tổng hợp
CHƯƠNG 5: TỔ CHỨC MÃ NGUỒN THÀNH MODULE
31

32
CHƯƠNG 5: Tổ chức mã nguồn thành Module
Bài 12. Module là gì? Vì sao cần chia module?
Module là một file Python (có đuôi .py) chứa các hàm, biến,
lớp hoặc câu lệnh.
Ví dụ: math_utils.py, student_manager.py
File helpers.py:
a. Khái niệm c. Ví dụ đơn giản:
def greet(name):
return f"Xin chào, {name}!"
Tái sử dụng: viết một lần, dùng nhiều nơi.
Dễ hiểu: mỗi file có một nhiệm vụ rõ ràng (ví dụ: file xử
lý toán, file in kết quả…).
Dễ gỡ lỗi: lỗi xảy ra trong module nào, sửa module đó.
Làm việc nhóm: mỗi người phụ trách một module.
b. Lợi ích của việc chia module: File main.py:
import helpers
print(helpers.greet("Lan"))

33
CHƯƠNG 5: Tổ chức mã nguồn thành Module
Bài 13. Cách tạo và sử dụng module
Khi chạy trực tiếp một file, __name__ == "__main__"
Khi import vào file khác, __name__ == "tên_file"
Dùng để phân biệt khi nào nên chạy thử nghiệm:
a. Tạo module: chỉ cần tạo file .py và viết code bình
thường
c. Biến đặc biệt __name__:
# helpers.py
def greet(name):
return f"Xin chào, {name}!"
if __name__ == "__main__":
# Chỉ chạy khi chạy trực tiếp file này
print(greet("Test"))
b. Cách import:
import helpers
print(helpers.greet("Nam"))
Cách 1: Import toàn bộ module
from helpers import greet
print(greet("Nam")) # gọi trực tiếp, không cần helpers.
Cách 2: Import một phần cụ thể
import helpers as h
print(h.greet("Minh"))
Cách 3: Đặt tên rút gọn (alias)

34
CHƯƠNG 5: Tổ chức mã nguồn thành Module
Bài 14. Package – Nhóm nhiều module vào một thư mục
Package là thư mục chứa nhiều module, kèm theo file
đặc biệt __init__.py (có thể rỗng).
a. Khái niệm
c. Cách import từ package
my_project/
├── main.py
└── utils/
├── __init__.py
├── math_ops.py
└── string_utils.py
b. Cấu trúc ví dụ:
# main.py
from utils.math_ops import add
from utils.string_utils import clean_text
print(add(2, 3))
print(clean_text(" Xin Chào "))
d. Vai trò của file __init__.py
Báo cho Python biết: “thư mục này là một package”.
Có thể dùng để import sẵn các hàm khi package
được gọi:
# utils/__init__.py
from .math_ops import add
from .string_utils import clean_text
# Giờ có thể gọi: from utils import add, clean_text

35
Bài tập tổng hợp
BÀI TẬP: XÂY DỰNG CHƯƠNG TRÌNH “QUẢN LÝ BẢNG ĐIỂM LỚP HỌC”
Xây dựng chương trình quản lý điểm của học sinh trong một lớp, với các chức năng:
Thêm học sinh (chỉ cần tên và danh sách điểm số)
Tính điểm trung bình và xếp loại
In ra toàn bộ bảng điểm
Tìm học sinh có điểm trung bình cao nhất
°
Cấu trúc dự án bắt buộc:
quan_ly_diem/
├── main.py
├── model/
│ ├── __init__.py
│ └── hoc_sinh.py
└── utils/
├── __init__.py
└── tinh_diem.py
CHƯƠNG 5: Tổ chức mã nguồn thành Module

