Gói là một thùng chứa các chức năng khác nhau để thực hiện các tác vụ cụ thể. Ví dụ: gói
Game.Level.start.select_difficulty[2]
5 bao gồm hàm Game.Level.start.select_difficulty[2]
6 để thực hiện căn bậc hai của một sốKhi làm việc trên các dự án lớn, chúng ta phải xử lý một lượng lớn mã và việc viết mọi thứ cùng nhau trong cùng một tệp sẽ khiến mã của chúng ta trông lộn xộn. Thay vào đó, chúng ta có thể tách mã của mình thành nhiều tệp bằng cách giữ mã liên quan lại với nhau trong các gói
Bây giờ, chúng ta có thể sử dụng gói bất cứ khi nào chúng ta cần trong các dự án của mình. Bằng cách này, chúng tôi cũng có thể sử dụng lại mã của mình
Cấu trúc mô hình gói trong lập trình Python
Giả sử chúng ta đang phát triển một trò chơi. Một tổ chức có thể có của các gói và mô-đun có thể như trong hình bên dưới
Ghi chú. Một thư mục phải chứa một tệp có tên
Game.Level.start.select_difficulty[2]
7 để Python coi nó là một gói. Tệp này có thể để trống nhưng chúng tôi thường đặt mã khởi tạo cho gói đó trong tệp nàyNhập mô-đun từ một gói
Trong Python, chúng ta có thể nhập các mô-đun từ các gói bằng cách sử dụng dấu chấm [. ] nhà điều hành
Ví dụ: nếu chúng ta muốn nhập mô-đun
Game.Level.start.select_difficulty[2]
8 trong ví dụ trên, thì có thể thực hiện như sauimport Game.Level.start
Bây giờ, nếu mô-đun này chứa một chức năng có tên là
Game.Level.start.select_difficulty[2]
0, chúng ta phải sử dụng tên đầy đủ để tham chiếu nóGame.Level.start.select_difficulty[2]
Nhập không có tiền tố gói
Nếu cấu trúc này có vẻ dài dòng, chúng ta có thể nhập mô-đun mà không cần tiền tố gói như sau
from Game.Level import start
Bây giờ chúng ta có thể gọi hàm đơn giản như sau
start.select_difficulty[2]
Chỉ nhập chức năng bắt buộc
Một cách khác để chỉ nhập chức năng được yêu cầu [hoặc lớp hoặc biến] từ một mô-đun trong một gói sẽ như sau
from Game.Level.start import select_difficulty
Bây giờ chúng ta có thể gọi trực tiếp chức năng này
select_difficulty[2]
Mặc dù dễ dàng hơn nhưng phương pháp này không được khuyến khích. Sử dụng không gian tên đầy đủ để tránh nhầm lẫn và ngăn hai tên định danh giống nhau va chạm
Trong khi nhập các gói, Python tìm trong danh sách các thư mục được xác định trong
Game.Level.start.select_difficulty[2]
1, tương tự như đối với đường dẫn tìm kiếm mô-đun Chúng tôi thường tổ chức các tệp của mình trong các thư mục và thư mục con khác nhau dựa trên một số tiêu chí để có thể quản lý chúng một cách dễ dàng và hiệu quả. Ví dụ: chúng tôi giữ tất cả các trò chơi của mình trong thư mục Trò chơi và thậm chí chúng tôi có thể phân loại phụ theo thể loại của trò chơi hoặc đại loại như thế này. Sự tương tự tương tự được theo sau bởi gói Python.
Một mô-đun Python có thể chứa một số lớp, hàm, biến, v.v. trong khi gói Python có thể chứa một số mô-đun. Nói một cách đơn giản hơn, một gói là thư mục chứa nhiều mô-đun khác nhau dưới dạng tệp
Tạo gói
Hãy tạo một gói có tên mypckg sẽ chứa hai mô-đun mod1 và mod2. Để tạo mô-đun này, hãy làm theo các bước dưới đây –
- Tạo một thư mục có tên mypckg
- Trong thư mục này, tạo một tệp Python trống i. e. __trong đó__. py
- Sau đó tạo 2 module mod1 và mod2 trong thư mục này
Mod1. py
Python3
Game.Level.start.select_difficulty[2]
9 from Game.Level import start
0from Game.Level import start
1from Game.Level import start
2from Game.Level import start
3from Game.Level import start
4import package_name.module_name0
Mod2. py
Python3
Game.Level.start.select_difficulty[2]
9 import package_name.module_name2
import package_name.module_name3
from Game.Level import start
1import package_name.module_name5
import package_name.module_name6
import package_name.module_name7
import package_name.module_name8
Hệ thống phân cấp của gói của chúng tôi trông như thế này -
Game.Level.start.select_difficulty[2]
5Hiểu __init__. py
__trong đó__. py giúp trình thông dịch Python nhận ra thư mục dưới dạng gói. Nó cũng chỉ định các tài nguyên được nhập từ các mô-đun. Nếu __init__. py trống, điều này có nghĩa là tất cả các chức năng của mô-đun sẽ được nhập. Chúng tôi cũng có thể chỉ định các chức năng từ mỗi mô-đun sẽ được cung cấp
Ví dụ: chúng ta cũng có thể tạo __init__. py cho mô-đun trên dưới dạng -
__trong đó__. py
Python3
import package_name.module_name9
Game.Level.start.select_difficulty[2]
70Game.Level.start.select_difficulty[2]
71 Game.Level.start.select_difficulty[2]
72import package_name.module_name9
Game.Level.start.select_difficulty[2]
74____171 import package_name.module_name2
__init__ này. py sẽ chỉ cho phép nhập các hàm gfg và sum từ các mô-đun mod1 và mod2
Nhập mô-đun từ gói
Chúng ta có thể nhập các mô-đun này bằng cách sử dụng câu lệnh from…import và dấu chấm[. ] nhà điều hành.
cú pháp
________số 8Ví dụ. Nhập mô-đun từ gói
Chúng tôi sẽ nhập các mô-đun từ gói đã tạo ở trên và sẽ sử dụng các chức năng bên trong các mô-đun đó