Hàm và module trong Python: tổ chức code hiệu quả

Khi chương trình lớn dần, bạn không thể viết mọi thứ trong một khối code khổng lồ. Hàm và module giúp bạn tổ chức, tái sử dụng và bảo trì code hiệu quả.

Định nghĩa hàm

def chao(ten):
    return f"Xin chào, {ten}!"

print(chao("Minh"))   # Xin chào, Minh!

Tham số mặc định và tham số từ khóa

def tinh_tien(so_luong, don_gia=10000):
    return so_luong * don_gia

tinh_tien(3)             # 30000 (dùng đơn giá mặc định)
tinh_tien(3, 15000)      # 45000
tinh_tien(so_luong=2, don_gia=20000)  # rõ ràng bằng tên tham số

Hàm trả về nhiều giá trị

def chia(a, b):
    return a // b, a % b   # trả về một tuple

thuong, du = chia(17, 5)   # thuong=3, du=2

*args và **kwargs

def tong(*args):
    return sum(args)

tong(1, 2, 3, 4)   # 10 - nhận số lượng tham số tùy ý

Module: chia code thành nhiều file

Giả sử bạn có file toan_hoc.py:

# toan_hoc.py
def cong(a, b):
    return a + b

Ở file khác, bạn import và dùng lại:

# main.py
import toan_hoc
print(toan_hoc.cong(2, 3))   # 5

# hoặc chỉ import thứ cần
from toan_hoc import cong
print(cong(2, 3))

Thư viện chuẩn — “pin đi kèm”

Python có triết lý “batteries included”: rất nhiều module hữu ích có sẵn, không cần cài thêm.

import math, random, datetime
math.sqrt(16)          # 4.0
random.randint(1, 6)   # số ngẫu nhiên 1-6
datetime.date.today()  # ngày hôm nay

Nguyên tắc DRY

DRY — “Don’t Repeat Yourself” (Đừng lặp lại chính mình). Khi thấy mình copy-paste một đoạn code, hãy nghĩ đến việc tách nó thành một hàm. Đó là dấu hiệu của code chuyên nghiệp.

Lên đầu trang