Python - Các gói: Cổng ra của Bạn đến Tính tái sử dụng và Tổ chức Mã

Xin chào, các nhà lập trình Python đam mê! Hôm nay, chúng ta sẽ bắt đầu hành trình thú vị vào thế giới các gói Python. Là người dạy khoa học máy tính nhân văn của bạn, tôi rất vui mừng hướng dẫn bạn qua khái niệm quan trọng này, giúp bạn nâng cao kỹ năng lập trình lên một tầng cao mới. Vậy hãy chuẩn bị túi xách ảo của bạn, và hãy bắt đầu!

Python - Packages

Các gói Python là gì?

Trước khi chúng ta bắt đầu tạo các gói của riêng mình, hãy hiểu rõ các gói đó là gì và tại sao chúng lại quan trọng như vậy.

Hãy tưởng tượng bạn đang xây dựng cấu trúc LEGO khổng lồ. Thay vì để các mảnh LEGO lan truyền khắp nơi, có lẽ bạn sẽ thích hợp hơn nếu chúng được tổ chức trong các hộp khác nhau dựa trên mục đích của chúng. Đó chính là điều mà các gói Python làm cho mã của bạn!

Một gói Python là cách để tổ chức các mô-đun liên quan vào một thư mục cây. Nó cho phép bạn nhóm các chức năng liên quan lại với nhau, làm cho mã của bạn trở nên còn tổ chức hơn, dễ tái sử dụng và dễ bảo trì hơn.

Tạo một Gói Python

Bây giờ, hãy quay bắp tay lên và tạo gói Python của riêng mình. Chúng ta sẽ bắt đầu với một ví dụ đơn giản để làm quen.

Bước 1: Tạo Thư mục Gói

Trước tiên, chúng ta cần tạo một thư mục cho gói của mình. Gọi nó là my_math_package.

my_math_package/

Bước 2: Thêm tệp init.py

Trong thư mục my_math_package, tạo một tệp trống có tên __init__.py. Tệp này cho phép Python biết rằng thư mục nên được xem như một gói.

my_math_package/
__init__.py

Bước 3: Tạo các tệp Mô-đun

Bây giờ, hãy thêm một số mô-đun vào gói của chúng ta. Chúng ta sẽ tạo hai mô-đun đơn giản: basic_operations.pyadvanced_operations.py.

my_math_package/
__init__.py
basic_operations.py
advanced_operations.py

Bước 4: Thêm Mã vào các Mô-đun

Hãy thêm một số hàm đơn giản vào các mô-đun của chúng ta.

Trong basic_operations.py:

def add(a, b):
return a + b

def subtract(a, b):
return a - b

Trong advanced_operations.py:

def power(base, exponent):
return base ** exponent

def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n-1)

Bước 5: Sử dụng Gói

Bây giờ khi chúng ta đã tạo gói của mình, hãy xem cách chúng ta có thể sử dụng nó trong mã Python của mình.

# Nhập các hàm cụ thể
from my_math_package.basic_operations import add, subtract
from my_math_package.advanced_operations import power, factorial

# Sử dụng các hàm đã nhập
print(add(5, 3))  # Output: 8
print(subtract(10, 4))  # Output: 6
print(power(2, 3))  # Output: 8
print(factorial(5))  # Output: 120

Có gì tuyệt vời không? Chúng ta vừa tạo và sử dụng gói Python của riêng mình!

Định nghĩa Danh sách Gói

Khi làm việc trên các dự án lớn hơn, bạn có thể cần sử dụng nhiều gói. Việc duy trì danh sách tất cả các gói mà dự án của bạn phụ thuộc vào là một thực hành tốt.

Danh sách gói thường được lưu trữ trong một tệp có tên requirements.txt. Tệp này liệt kê tất cả các gói và phiên bản mà dự án của bạn cần để chạy đúng.

Dưới đây là ví dụ về cách một tệp requirements.txt có thể trông như thế nào:

numpy==1.21.0
pandas==1.3.0
matplotlib==3.4.2

Mỗi dòng xác định một tên gói và phiên bản của nó. Dấu bằng hai (==) cho thấy rằng chúng ta muốn chính xác phiên bản đó.

Cài đặt Gói

Bây giờ khi chúng ta biết cách liệt kê các gói cần thiết của mình, hãy học cách cài đặt chúng. Python cung cấp một công cụ mạnh mẽ có tên là pip cho việc cài đặt gói.

Cài đặt một Gói duy nhất

Để cài đặt một gói duy nhất, bạn có thể sử dụng lệnh sau trong terminal hoặc dấu nhắc của bạn:

pip install package_name

Ví dụ, để cài đặt NumPy:

pip install numpy

Cài đặt từ requirements.txt

Để cài đặt tất cả các gói liệt kê trong tệp requirements.txt của bạn, sử dụng:

pip install -r requirements.txt

Lệnh này cho phép pip đọc tệp requirements.txt và cài đặt tất cả các gói liệt kê ở đó.

Môi trường Ảo

Dưới đây là một lời khuyên chuyên nghiệp: khi làm việc trên các dự án khác nhau, bạn nên sử dụng các môi trường ảo. Một môi trường ảo giống như là một sân chơi riêng cho mỗi dự án của bạn, giữ các phụ thuộc của chúng độc lập với nhau.

Để tạo một môi trường ảo:

python -m venv myenv

Để kích hoạt nó:

  • Trên Windows: myenv\Scripts\activate
  • Trên macOS và Linux: source myenv/bin/activate

Khi đã kích hoạt, bất kỳ gói nào bạn cài đặt sẽ cụ thể cho môi trường này, giữ cho các dự án của bạn gọn gàng!

Kết luận

Xin chúc mừng! Bạn vừa bước ra một bước lớn trong hành trình Python của mình bằng cách học về các gói. Từ việc tạo gói của riêng mình đến việc cài đặt và quản lý chúng, bạn bây giờ có các công cụ để tổ chức mã như một chuyên gia.

Hãy nhớ rằng, các gói như như các kệ trong thư viện mã của bạn. Chúng giúp bạn giữ mọi thứ được tổ chức, làm cho việc tìm kiếm và chia sẻ mã của bạn với người khác trở nên dễ dàng hơn. Khi bạn tiếp tục hành trình Python của mình, bạn sẽ khám phá nhiều gói thú vị hơn có thể thêm các chức năng mạnh mẽ vào các dự án của bạn.

Hãy tiếp tục tập luyện, giữ được sự tò mò và hạnh phúc lập trình!

Phương thức Mô tả
pip install package_name Cài đặt một gói duy nhất
pip install -r requirements.txt Cài đặt các gói liệt kê trong requirements.txt
python -m venv myenv Tạo một môi trường ảo
myenv\Scripts\activate (Windows) Kích hoạt môi trường ảo trên Windows
source myenv/bin/activate (macOS/Linux) Kích hoạt môi trường ảo trên macOS/Linux

Credits: Image by storyset