Gói trong Python giải thích bằng ví dụ là gì?

Gói là cấu trúc thư mục tệp phân cấp xác định một môi trường ứng dụng Python duy nhất bao gồm các mô-đun và gói con và gói con phụ, v.v.

Xem xét một tệp Pos. py có sẵn trong danh bạ Điện thoại. Tệp này có dòng mã nguồn sau -

#!/usr/bin/python
def Pots[]:
print "I'm Pots Phone"

Tương tự như vậy, chúng ta có hai tệp khác có các chức năng khác nhau có cùng tên như trên -

  • Điện thoại/Isdn. tệp py có chức năng Isdn[]
  • Điện thoại/G3. tệp py có chức năng G3[]

Bây giờ, hãy tạo thêm một tệp __init__. py trong thư mục Điện thoại -

Để cung cấp tất cả các chức năng của bạn khi bạn đã nhập Điện thoại, bạn cần đặt câu lệnh nhập rõ ràng vào __init__. py như sau -

from Pots import Pots
from Isdn import Isdn
from G3 import G3

Sau khi bạn thêm những dòng này vào __init__. py, bạn có sẵn tất cả các lớp này khi nhập gói Điện thoại

#!/usr/bin/python
# Now import your Phone Package.
import Phone
Phone.Pots[]
Phone.Isdn[]
Phone.G3[]

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -

I'm Pots Phone
I'm 3G Phone
I'm ISDN Phone

Trong ví dụ trên, chúng tôi đã lấy ví dụ về một chức năng duy nhất trong mỗi tệp, nhưng bạn có thể giữ nhiều chức năng trong tệp của mình. Bạn cũng có thể định nghĩa các lớp Python khác nhau trong các tệp đó và sau đó bạn có thể tạo các gói của mình từ các lớp đó

Thông thường, nhiều lập trình viên và lập trình viên nghiệp dư có thể nhầm lẫn giữa mô-đun và gói. Vấn đề thường phát sinh khi khó xác định khi nào và ở đâu một mô-đun hoặc gói nên được triển khai

Trong phần hướng dẫn sau, chúng ta sẽ thảo luận về sự khác biệt rõ ràng giữa các mô-đun và gói trong ngôn ngữ lập trình Python, điều này sẽ giúp lập trình viên dễ dàng làm việc chuyên nghiệp hơn khi xử lý cả mô-đun và gói

Hiểu các Mô-đun trong Python

Một mô-đun là một câu lệnh Pythonic chứa các chức năng khác nhau. Các mô-đun hoạt động như một thư viện được xác định trước trong tập lệnh, cả người lập trình cũng như người dùng đều có thể truy cập được

Các mô-đun python cũng lưu trữ các chức năng được xác định trước từ thư viện khi mã đang được thực thi

Chúng ta hãy xem xét một ví dụ minh họa việc sử dụng một mô-đun trong Python

Thí dụ

đầu ra

Giải trình

Trong đoạn mã trên, chúng ta đã nhập mô-đun được yêu cầu và sử dụng hàm pow[] để tính lũy thừa của một số đã cho làm đối số. Sau đó, chúng tôi đã in giá trị của pow cho người dùng

Hiểu các gói trong Python

Một gói được coi là một tập hợp các công cụ cho phép các lập trình viên khởi tạo mã. Gói Python hoạt động như một giao diện biến người dùng cho bất kỳ mã nguồn nào. Tính năng này cho phép gói Python hoạt động tại một thời điểm xác định cho bất kỳ tập lệnh chức năng nào trong thời gian chạy

Chúng ta hãy xem xét ví dụ sau minh họa gói trong Python

Thí dụ

đầu ra

We have imported the math package   

Giải trình

Trong đoạn mã trên, chúng tôi đã nhập gói toán bao gồm các mô-đun và chức năng khác nhau cho các lập trình viên và in một câu lệnh cho người dùng

Hiểu sự khác biệt giữa các Mô-đun và Gói Python

  1. Một Gói bao gồm __init__. py cho mỗi tập lệnh hướng đến người dùng. Tuy nhiên, điều tương tự không áp dụng cho các mô-đun trong thời gian chạy đối với bất kỳ tập lệnh nào được chỉ định cho người dùng
  2. Mô-đun là một tệp chứa tập lệnh Python trong thời gian chạy cho mã được chỉ định cho người dùng. Một gói cũng sửa đổi mã được giải thích của người dùng theo cách sao cho nó dễ dàng được vận hành trong thời gian chạy

Một "mô-đun" python chứa một không gian tên đơn vị, với các biến được trích xuất cục bộ cùng với một số hàm được phân tích cú pháp như

  1. Hằng và biến
  2. Bất kỳ giá trị cũ hay mới
  3. Định nghĩa lớp của các thuộc tính
  4. Một mô-đun thường tương ứng với một tệp duy nhất
  5. Một công cụ sửa lỗi trong thư viện giao diện người dùng

Có một số công cụ thường được sử dụng cho phép các lập trình viên xây dựng một nền tảng mới với sự trợ giúp của các mô-đun để thực thi mã tốt hơn. Điều này cũng cài đặt và phân phối các gói trong thư viện trong thời gian chạy

Việc sử dụng các công cụ dành riêng cho người dùng trở nên dễ dàng hơn với sự trợ giúp của bố cục tiêu chuẩn và có cấu trúc tốt cho gói

Chúng tôi tổ chức một số lượng lớn tệp trong các thư mục và thư mục con khác nhau dựa trên một số tiêu chí để chúng tôi có thể tìm và quản lý chúng dễ dàng. Theo cách tương tự, một gói trong Python đưa khái niệm về cách tiếp cận mô-đun lên cấp độ logic tiếp theo. Như bạn đã biết, một mô-đun có thể chứa nhiều đối tượng, chẳng hạn như lớp, hàm, v.v. Một gói có thể chứa một hoặc nhiều mô-đun có liên quan. Về mặt vật lý, một gói thực sự là một thư mục chứa một hoặc nhiều tệp mô-đun

Hãy tạo một gói có tên mypackage, sử dụng các bước sau

  • Tạo một thư mục mới có tên
    from Pots import Pots
    from Isdn import Isdn
    from G3 import G3
    9
  • Bên trong
    #!/usr/bin/python
    # Now import your Phone Package.
    import Phone
    Phone.Pots[]
    Phone.Isdn[]
    Phone.G3[]
    0, tạo thư mục con có tên 'mypackage'
  • Tạo một tệp
    #!/usr/bin/python
    # Now import your Phone Package.
    import Phone
    Phone.Pots[]
    Phone.Isdn[]
    Phone.G3[]
    1 trống trong thư mục mypackage
  • Sử dụng trình chỉnh sửa nhận biết Python như IDLE, tạo mô-đun chào. py và chức năng. py với đoạn mã sau

chào hỏi. py

Sao chép

def SayHello[name]:
    print["Hello ", name]

chức năng. py

Sao chép

def sum[x,y]:
    return x+y

def average[x,y]:
    return [x+y]/2

def power[x,y]:
    return x**y

Đó là nó. Chúng tôi đã tạo gói có tên mypackage. Sau đây là cấu trúc thư mục

Cấu trúc thư mục gói

Nhập Mô-đun từ Gói

Bây giờ, để kiểm tra gói của chúng tôi, hãy điều hướng dấu nhắc lệnh đến thư mục

#!/usr/bin/python
# Now import your Phone Package.
import Phone
Phone.Pots[]
Phone.Isdn[]
Phone.G3[]
0 và gọi dấu nhắc Python từ đó

D. \MyApp>trăn

Nhập mô-đun chức năng từ gói mypackage và gọi hàm power[] của nó

>>> từ chức năng nhập mypackage
>>> chức năng. sức mạnh[3,2]
9

Cũng có thể nhập các chức năng cụ thể từ một mô-đun trong gói

>>> từ gói của tôi. hàm nhập sum
>>> sum[10,20]
30
>>> trung bình[10,12]< .
Traceback [most recent call last]:
Tệp "
NameError. tên 'trung bình' không được xác định

__trong đó__. py

Thư mục gói chứa một tệp đặc biệt có tên là

#!/usr/bin/python
# Now import your Phone Package.
import Phone
Phone.Pots[]
Phone.Isdn[]
Phone.G3[]
1, lưu trữ nội dung của gói. Nó phục vụ hai mục đích

  1. Trình thông dịch Python nhận ra một thư mục là gói nếu nó chứa tệp
    #!/usr/bin/python
    # Now import your Phone Package.
    import Phone
    Phone.Pots[]
    Phone.Isdn[]
    Phone.G3[]
    1
  2. #!/usr/bin/python
    # Now import your Phone Package.
    import Phone
    Phone.Pots[]
    Phone.Isdn[]
    Phone.G3[]
    1 hiển thị các tài nguyên được chỉ định từ các mô-đun của nó sẽ được nhập

Một tệp

#!/usr/bin/python
# Now import your Phone Package.
import Phone
Phone.Pots[]
Phone.Isdn[]
Phone.G3[]
1 trống sẽ cung cấp tất cả các chức năng từ các mô-đun trên khi gói này được nhập. Lưu ý rằng
#!/usr/bin/python
# Now import your Phone Package.
import Phone
Phone.Pots[]
Phone.Isdn[]
Phone.G3[]
1 là điều cần thiết để thư mục được Python nhận dạng dưới dạng gói. Bạn có thể tùy chọn xác định các chức năng từ các mô-đun riêng lẻ sẽ được cung cấp

Ghi chú

Chúng tôi cũng sẽ tạo một tập lệnh Python khác trong thư mục

#!/usr/bin/python
# Now import your Phone Package.
import Phone
Phone.Pots[]
Phone.Isdn[]
Phone.G3[]
0 và nhập gói mypackage trong đó. Nó phải ở cùng cấp độ của gói được nhập

Tệp

#!/usr/bin/python
# Now import your Phone Package.
import Phone
Phone.Pots[]
Phone.Isdn[]
Phone.G3[]
1 thường được để trống. Tuy nhiên, nó cũng có thể được sử dụng để chọn các chức năng cụ thể từ các mô-đun trong thư mục gói và cung cấp chúng để nhập. Sửa đổi
#!/usr/bin/python
# Now import your Phone Package.
import Phone
Phone.Pots[]
Phone.Isdn[]
Phone.G3[]
1 như bên dưới

__trong đó__. py

Sao chép

from .functions import average, power
from .greet import SayHello

Giờ đây, các chức năng được chỉ định có thể được nhập trong phiên thông dịch hoặc tập lệnh thực thi khác

Tạo

def sum[x,y]:
    return x+y

def average[x,y]:
    return [x+y]/2

def power[x,y]:
    return x**y
7 trong thư mục
#!/usr/bin/python
# Now import your Phone Package.
import Phone
Phone.Pots[]
Phone.Isdn[]
Phone.G3[]
0 để kiểm tra mypackage

kiểm tra. py

Sao chép

from mypackage import power, average, SayHello
SayHello[]
x=power[3,2]
print["power[3,2] : ", x]

Lưu ý rằng các hàm

def sum[x,y]:
    return x+y

def average[x,y]:
    return [x+y]/2

def power[x,y]:
    return x**y
9 và
from .functions import average, power
from .greet import SayHello
0 được nhập từ gói chứ không phải từ các mô-đun tương ứng của chúng, như đã thực hiện trước đó. Đầu ra của đoạn script trên là

D. \MyApp>kiểm tra trăn. py
Xin chào thế giới
power[3,2]. 9

Cài đặt gói trên toàn cầu

Khi một gói được tạo, nó có thể được cài đặt để sử dụng trên toàn hệ thống bằng cách chạy tập lệnh thiết lập. Tập lệnh gọi hàm

from .functions import average, power
from .greet import SayHello
1 từ mô-đun
from .functions import average, power
from .greet import SayHello
2

Hãy cài đặt mypackage để sử dụng trên toàn hệ thống bằng cách chạy tập lệnh thiết lập

Lưu đoạn mã sau dưới dạng thiết lập. py trong thư mục mẹ

#!/usr/bin/python
# Now import your Phone Package.
import Phone
Phone.Pots[]
Phone.Isdn[]
Phone.G3[]
0. Tập lệnh gọi hàm
from .functions import average, power
from .greet import SayHello
1 từ mô-đun setuptools. Hàm
from .functions import average, power
from .greet import SayHello
1 nhận nhiều đối số khác nhau như tên, phiên bản, tác giả, danh sách phụ thuộc, v.v. Đối số
from .functions import average, power
from .greet import SayHello
6 xác định xem gói được cài đặt ở chế độ nén hay chế độ thông thường

Thí dụ. thành lập. py

Sao chép

from Pots import Pots
from Isdn import Isdn
from G3 import G3
7

Bây giờ hãy thực hiện lệnh sau để cài đặt

from .functions import average, power
from .greet import SayHello
7 bằng tiện ích pip. Đảm bảo rằng dấu nhắc lệnh nằm trong thư mục mẹ, trong trường hợp này là
from Pots import Pots
from Isdn import Isdn
from G3 import G3
9

D. \MyApp>pip install mypackage
Đang xử lý d. \MyApp
Cài đặt các gói đã thu thập. mypack
Chạy thiết lập. py cài đặt cho mypack. xong
Đã cài đặt thành công mypackage-0. 1

Bây giờ mypackage có sẵn để sử dụng trên toàn hệ thống và có thể được nhập vào bất kỳ tập lệnh hoặc trình thông dịch nào

D. \>python
>>> nhập mypackage
>>>mypackage. trung bình[10,20]
15. 0
>>>gói của tôi. công suất[10,2]
100

Bạn cũng có thể muốn xuất bản gói để sử dụng công khai. PyPI [viết tắt của Python Package Index] là kho lưu trữ các gói Python. Truy cập https. // bao bì. con trăn. org/distributing để biết thêm về quy trình tải gói lên PyPI

Định nghĩa gói trong Python là gì?

Một gói Python thường bao gồm một số mô-đun. Về mặt vật lý, một gói là một thư mục chứa các mô-đun và có thể các thư mục khác mà bản thân chúng có thể chứa nhiều thư mục và mô-đun hơn . Về mặt khái niệm, đó là một không gian tên.

Các gói cơ bản trong Python là gì?

10 gói Python hàng đầu năm 2021 .
NumPy
gấu trúc
Matplotlib
sinh ra biển
scikit-học
yêu cầu
urllib3

Gói và thư viện trong Python là gì?

04. 41 Gói là tập hợp các mô-đun có liên quan nhằm đạt được mục tiêu chung . Cuối cùng, thư viện chuẩn Python là tập hợp các gói và mô-đun có thể được sử dụng để truy cập chức năng tích hợp sẵn. Trong một thế giới lý tưởng, bạn sẽ nhập bất kỳ mô-đun cần thiết nào vào tập lệnh Python của mình mà không gặp sự cố nào.

Chủ Đề