Đăng nhập

Bài 20: Viết thư viện (module) riêng để tái sử dụng

Đế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ụngquả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 trong if 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êng
  • text_utils.py: xử lý chuỗi, chuẩn hóa văn bản
  • user.py: class User, 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 đầu
  • dao_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

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.