Module là tính năng Python cho phép chia mã thành nhiều file. Module Python là file kết thúc bằng đuôi ".py".
Trong hướng dẫn này, chúng ta cung cấp ví dụ và bạn học cách tạo module Python.
Python Modules: Khái Quát
Module là tên khác file chương trình Python. Nghĩa là bất kỳ file dự án Python kết thúc .py đều xem như module. Module bao gồm hàm, biến, class, và tự nhập thư viện.
Có ba loại module chính Python:
- Built-in Modules (Module tích hợp): Module thuộc Python Standard Library. Đóng gói với cài đặt Python. Ví dụ: logging, time.
- External Modules (Module bên ngoài): Module cài bằng pip, công cụ quản lý gói Python.
- User-Defined Modules (Module do người dùng định nghĩa): Hàm do bạn định nghĩa trong chương trình Python.
Viết module giúp bảo toàn dễ đọc mã. Dù kỹ thuật có thể viết toàn bộ mã chương trình trong một file, không phải ý tưởng hay. Biết đâu và cách thay đổi file hàng nghìn dòng khó khăn.
Chúng tôi khuyên đọc hướng dẫn câu lệnh import Python nếu chưa quen.
Cách Viết Module Python
Trong hướng dẫn, chúng ta viết chương trình ngân hàng lưu số dư khách hàng. Hãy bắt đầu.
Đầu tiên, tạo hàm chào mừng người dùng hệ thống theo dõi số dư ngân hàng. Viết hàm trong file bank.py, lưu mã hệ thống theo dõi.
def welcome_message():
print("Welcome to Python Bank!")
Chạy chương trình, không xảy ra gì. Vì chưa gọi hàm. Để dùng mã, tạo file mới main.py. File này lưu mã chính:
import bank bank.welcome_message()
Mã nhập module bank từ bank.py. Gọi hàm welcome_message() trong module bank. Mã trả về:
Welcome to Python Bank!
Mặc dù câu lệnh print() trong bank.py, dùng từ khóa import gọi mã trong chương trình chính. Đây ví dụ cơ bản chạy mã file khác Python, nhưng làm được nhiều hơn với module.
Dùng Class Với Module Python
Giả sử muốn tạo class lưu dữ liệu khách hàng ngân hàng. Định nghĩa class trong bank.py, tách khỏi chương trình chính:
def welcome_message():
print("Welcome to Python Bank!")
class Customer:
def __init__(self, name, balance):
self.name = name
self.balance = balance
def show_customer(self):
print("Name: " + self.name)
print("Balance: $" + str(self.balance))
Quay lại main.py dùng mã. Thêm mã tạo instance lớp Customer. Instance lưu tên và số dư Lucy, khách mới ngân hàng.
File main.py giờ trông như sau:
import bank
bank.welcome_message()
lucy = bank.Customer("Lucy", 75)
lucy.show_customer()
Mã trả về:
Welcome to Python Bank!
Name: Lucy
Balance: $75
Mã khai báo instance Customer "lucy". Tài khoản Lucy tên "Lucy" số dư $75.
Như bạn thấy, mã class Customer không lưu chương trình chính.
Thay vào đó, mã trong bank.py. Câu lệnh "import" cho phép lấy toàn bộ mã bank.py dùng trong mã.
Cách Import Module Từ Thư Mục Khác
Trong Python, dùng module lưu thư mục khác.
Ví dụ trước, module "bank.py" cùng thư mục "main.py".
Vì chương trình ngắn, không cần thư mục module riêng. Nhưng viết chương trình lớn, bạn muốn lưu module thư mục riêng.
Để làm, dùng từ khóa "from". Cho phép chỉ định thư mục import module.
Giả sử di chuyển module bank.py vào thư mục bank_details. Import module cụ thể bằng thay câu lệnh import từ "import bank" thành:
from bank_details import bank
Cho phép nhập nội dung bank.py vào chương trình. from bank_details báo chương trình đâu tìm module, thường gọi module namespace (không gian tên module). Trong trường hợp này, bank_details là module namespace và file chứa mã Python dùng chương trình.
Kết Luận
Không khác biệt viết module và file Python khác. Module đơn giản là file Python. Dùng với câu lệnh "import", bạn dùng module chia mã. Hữu ích vì không cần lưu toàn bộ mã chương trình một file; chia nhiều file và phân loại mã.