Tóm lược. trong hướng dẫn này, bạn tìm hiểu về các gói Python và cách sử dụng chúng để cấu trúc ứng dụng của bạn
Giới thiệu về các gói Python
Giả sử rằng bạn cần phát triển một ứng dụng lớn xử lý quy trình bán hàng từ đơn đặt hàng đến tiền mặt
Ứng dụng sẽ có nhiều mô-đun. Khi số lượng mô-đun tăng lên, sẽ rất khó để giữ tất cả chúng ở một vị trí
Và bạn có thể muốn nhóm các mô-đun thành một cái gì đó có ý nghĩa
Đây là nơi các gói phát huy tác dụng
Các gói cho phép bạn tổ chức các mô-đun theo cấu trúc phân cấp
Cách Python tổ chức các gói và mô-đun giống như Hệ điều hành cấu trúc các thư mục và tệp
Để tạo một gói, bạn tạo một thư mục mới và đặt các mô-đun có liên quan vào thư mục đó
Để hướng dẫn Python xử lý một thư mục chứa các tệp dưới dạng một gói, bạn cần tạo một tệp
4 trong thư mụcCode language: Python [python]
package.module.function
Lưu ý rằng bắt đầu với Python 3. 3, Python đã giới thiệu tính năng gói không gian tên ẩn. Điều này cho phép Python coi một thư mục là một gói mà không có __________4
Ví dụ: hình ảnh sau đây cho thấy gói
6 chứa ba mô-đun bao gồmCode language: Python [python]
package.module.function
7,Code language: Python [python]
package.module.function
8 vàCode language: Python [python]
package.module.function
9Code language: Python [python]
package.module.function
nhập gói
Để nhập một gói, bạn sử dụng câu lệnh
0 như thế nàyCode language: Python [python]
# main.py import sales.order import sales.delivery import sales.billing sales.order.create_sales_order[] sales.delivery.create_delivery[] sales.billing.create_billing[]
Code language: Python [python]
import package.module
Và để truy cập một đối tượng từ một mô-đun thuộc gói, bạn sử dụng ký hiệu dấu chấm
Code language: Python [python]
package.module.function
Phần sau đây trình bày cách sử dụng các hàm trong các mô-đun
7,
package.module.function
Code language: Python [python]
8 vàCode language: Python [python]
package.module.function
9 từ góiCode language: Python [python]
package.module.function
6Code language: Python [python]
package.module.function
Code language: Python [python]
# main.py import sales.order import sales.delivery import sales.billing sales.order.create_sales_order[] sales.delivery.create_delivery[] sales.billing.create_billing[]
Để làm cho mã ngắn gọn hơn, bạn có thể sử dụng câu lệnh sau để nhập hàm từ mô-đun
Code language: Python [python]
from import
Ví dụ
Code language: Python [python]
# main.py from sales.order import create_sales_order from sales.delivery import create_delivery from sales.billing import create_billing create_sales_order[] create_delivery[] create_billing[]
Có thể đổi tên đối tượng khi nhập nó
Code language: Python [python]
# main.py from sales.order import create_sales_order as create_order from sales.delivery import create_delivery as start_delivery from sales.billing import create_billing as issue_billing create_order[] start_delivery[] issue_billing[]
Trong ví dụ này, chúng tôi đổi tên…
5 đến
Code language: Python [python]# main.py import sales.order import sales.delivery import sales.billing sales.order.create_sales_order[] sales.delivery.create_delivery[] sales.billing.create_billing[]
6,
Code language: Python [python]# main.py import sales.order import sales.delivery import sales.billing sales.order.create_sales_order[] sales.delivery.create_delivery[] sales.billing.create_billing[]
7 đến
Code language: Python [python]# main.py import sales.order import sales.delivery import sales.billing sales.order.create_sales_order[] sales.delivery.create_delivery[] sales.billing.create_billing[]
8,
Code language: Python [python]# main.py import sales.order import sales.delivery import sales.billing sales.order.create_sales_order[] sales.delivery.create_delivery[] sales.billing.create_billing[]
- và
9 đến
Code language: Python [python]# main.py import sales.order import sales.delivery import sales.billing sales.order.create_sales_order[] sales.delivery.create_delivery[] sales.billing.create_billing[]
0
Code language: Python [python]from import
Khởi tạo một gói
Theo quy ước, khi bạn nhập một gói, Python sẽ thực thi
4 trong gói đóCode language: Python [python]
package.module.function
Do đó, bạn có thể đặt mã vào tệp
4 để khởi tạo dữ liệu cấp góiCode language: Python [python]
package.module.function
Ví dụ sau xác định thuế suất mặc định trong
4 của gói bán hàngCode language: Python [python]
package.module.function
Code language: Python [python]
# __init__.py # default sales tax rate TAX_RATE = 0.07
Từ tệp
4, bạn có thể truy cập tệpCode language: Python [python]
from import
5 từ góiCode language: Python [python]
from import
6 như thế nàyCode language: Python [python]
package.module.function
Code language: Python [python]
# main.py from sales import TAX_RATE print[TAX_RATE]
Ngoài việc khởi tạo dữ liệu cấp gói,
4 còn cho phép bạn tự động nhập các mô-đun từ góiCode language: Python [python]
package.module.function
Ví dụ: trong
4, nếu bạn đặt câu lệnh sauCode language: Python [python]
package.module.function
Code language: Python [python]
# __init__.py # import the order module automatically from sales.order import create_sales_order # default sales tax rate TAX_RATE = 0.07
Và nhập gói
6 từ chính. py, hàmCode language: Python [python]
package.module.function
5 sẽ tự động có sẵn như sauCode language: Python [python]
# main.py import sales.order import sales.delivery import sales.billing sales.order.create_sales_order[] sales.delivery.create_delivery[] sales.billing.create_billing[]
Code language: Python [python]
# main.py import sales sales.order.create_sales_order[]
from import *
Khi bạn sử dụng câu lệnh để nhập tất cả các đối tượng từ một gói
0Code language: Python [python]
package.module.function
Python sẽ tìm tệp
4Code language: Python [python]
package.module.function
Nếu tệp
4 tồn tại, nó sẽ tải tất cả các mô-đun được chỉ định trong danh sách đặc biệt có tên là
package.module.function
Code language: Python [python]
3 trong tệpCode language: Python [python]
# main.py from sales.order import create_sales_order from sales.delivery import create_delivery from sales.billing import create_billing create_sales_order[] create_delivery[] create_billing[]
Ví dụ: bạn có thể đặt mô-đun đặt hàng và giao hàng trong danh sách
3 như thế nàyCode language: Python [python]
# main.py from sales.order import create_sales_order from sales.delivery import create_delivery from sales.billing import create_billing create_sales_order[] create_delivery[] create_billing[]
1Code language: Python [python]
package.module.function
Và sử dụng câu lệnh nhập sau trong phần chính. py
2Code language: Python [python]
package.module.function
từ chính. py, bạn có thể truy cập các chức năng được xác định trong các mô-đun
7 vàCode language: Python [python]
package.module.function
8. Nhưng bạn không thể nhìn thấy mô-đunCode language: Python [python]
package.module.function
9 vì nó không có trong danh sáchCode language: Python [python]
package.module.function
3Code language: Python [python]
# main.py from sales.order import create_sales_order from sales.delivery import create_delivery from sales.billing import create_billing create_sales_order[] create_delivery[] create_billing[]
gói con
Các gói có thể chứa các gói con. Các gói con cho phép bạn tổ chức thêm các mô-đun
Sau đây cho thấy gói
6 có chứa ba gói con.Code language: Python [python]
package.module.function
7,Code language: Python [python]
package.module.function
8 vàCode language: Python [python]
package.module.function
9. Mỗi gói con có mô-đun tương ứngCode language: Python [python]
package.module.function
Ví dụ: bạn có thể đặt tất cả các mô-đun khác liên quan đến xử lý đơn đặt hàng trong gói con
7Code language: Python [python]
package.module.function
Mọi thứ bạn đã học về các gói cũng liên quan đến các gói con
Ví dụ: để nhập một hàm từ gói con
7, bạn sử dụng câu lệnh sauCode language: Python [python]
package.module.function
0Code language: Python [python]
# main.py import sales.order import sales.delivery import sales.billing sales.order.create_sales_order[] sales.delivery.create_delivery[] sales.billing.create_billing[]