Đến thời điểm này, bạn không chỉ biết viết code, mà còn bắt đầu biết tổ chức code thông minh – một kỹ năng của lập trình viên thực thụ. Bài hôm nay sẽ giúp bạn tách logic ra thành các file riêng (module) để tái sử dụng và quản lý dễ dàng hơn.
Viết một lần, dùng nhiều lần
Khi bạn viết một hàm hay class có thể dùng đi dùng lại (như tính thuế, chuẩn hóa tên, xử lý chuỗi…), bạn không nên copy–paste ở mọi nơi. Thay vào đó, hãy đóng gói nó thành thư viện (module), rồi chỉ cần import ở bất kỳ nơi nào bạn cần.
Đây là cách các thư viện lớn (như
math
,random
,pandas
) được tạo ra.
Mục tiêu bài học
- Hiểu module là gì
- Biết cách tạo module riêng trong file
.py
- Biết cách import và sử dụng lại module
- Tổ chức mã nguồn theo nhiều file rõ ràng hơn
- Biết cách dùng
__name__ == "__main__"
để kiểm soát hành vi chạy
1. Module là gì?
Một module đơn giản là một file .py
chứa hàm, biến hoặc class, để có thể dùng lại từ file khác thông qua import
.
2. Tạo module đơn giản
📄 File: mytools.py
def chao(ten):
print(f"Xin chào, {ten}!")
def tinh_tong(a, b):
return a + b
3. Import và sử dụng module
📄 File: main.py
import mytools
mytools.chao("An")
print(mytools.tinh_tong(5, 7))
Hai file nằm cùng thư mục là đủ để
import
được.
4. Import nâng cao
from mytools import chao, tinh_tong
chao("Bình")
print(tinh_tong(10, 15))
Đặt bí danh:
import mytools as mt
mt.chao("Chi")
5. Kiểm soát hành vi chạy module
Trong module, bạn có thể viết:
def chao(ten):
print(f"Xin chào, {ten}!")
if __name__ == "__main__":
# đoạn này chỉ chạy khi chạy trực tiếp file mytools.py
chao("Test")
Vì sao cần?
- Khi chạy
python mytools.py
, đoạn trongif
sẽ chạy - Nhưng khi import từ nơi khác, đoạn đó sẽ không chạy
6. Tổ chức module theo thư mục (gói – package)
Bạn có thể tổ chức module thành nhiều file trong thư mục:
my_lib/
├── __init__.py (bắt buộc để Python hiểu đây là package)
├── xu_ly_chuoi.py
├── xu_ly_so.py
Sau đó:
from my_lib import xu_ly_chuoi
7. Ứng dụng thực tế
Bạn có thể tạo các module như:
math_utils.py
: chứa các hàm toán học riêngtext_utils.py
: xử lý chuỗi, chuẩn hóa văn bảnuser.py
: classUser
,Admin
,Guest
file_tools.py
: hàm đọc ghi file, kiểm tra tồn tại…
Sau đó chỉ cần gọi lại ở bất kỳ project nào, không cần viết lại từ đầu!
8. Bài tập luyện tập
Bài 1: Tạo module math_ext.py
chứa hàm tính diện tích tam giác và hình tròn
Bài 2: Tạo file string_tools.py
chứa:
chuan_hoa(ten)
: viết hoa chữ cái đầudao_nguoc(chuoi)
: đảo thứ tự từ
Bài 3: Tạo module danh_ba.py
, định nghĩa class LienHe(ten, sdt)
và phương thức hien_thi()
Bài 4: Tạo một folder libs/
, trong đó có 2 module: so.py
, chuoi.py
. Viết main.py
để dùng cả hai.
Kết luận
Việc tách code thành module:
- Giúp bạn viết mã có tổ chức, dễ hiểu hơn
- Giúp nhóm lập trình viên chia việc dễ hơn
- Giúp bạn dùng lại code dễ dàng, không cần viết lại
- Là một bước cực kỳ quan trọng để phát triển phần mềm thực tế
Bài tiếp theo: Mini Project – Quản lý danh bạ đơn giản
Chúng ta sẽ áp dụng:
- Class & Object
- Module riêng
- Xử lý chuỗi
- Ghi và đọc dữ liệu từ file
.txt
- Menu nhập lệnh từ người dùng
Đây sẽ là bước chuyển lớn – từ học lý thuyết sang xây dựng ứng dụng thực tế đầu tiên.
Thảo luận