Computer >> Máy Tính >  >> Lập trình >> Python

Sự khác biệt giữa mô-đun python và gói python là gì?

Mọi tệp Python đều là một mô-đun, tên của nó là tên cơ sở của tệp / thuộc tính __name__ của mô-đun mà không có phần mở rộng .py. Một gói là một tập hợp các mô-đun Python, tức là một gói là một thư mục gồm các mô-đun Python có chứa một tệp __init__.py bổ sung. __Init__.py phân biệt một gói với một thư mục chỉ chứa một loạt các tập lệnh Python. Các gói có thể được lồng vào bất kỳ độ sâu nào, miễn là các thư mục tương ứng chứa tệp __init__.py của riêng chúng.

Khi bạn nhập một mô-đun hoặc một gói, đối tượng tương ứng được tạo bởi Python luôn thuộc loại mô-đun. Điều này có nghĩa là sự phân biệt giữa mô-đun và gói chỉ nằm ở cấp hệ thống tệp. Tuy nhiên, lưu ý rằng khi bạn nhập một gói, chỉ các biến / hàm / lớp trong tệp __init__.py của gói đó mới hiển thị trực tiếp, không hiển thị trực tiếp các gói con hoặc mô-đun.

Ví dụ, trong mô-đun datetime, có một mô-đun con được gọi là ngày tháng. Khi bạn nhập ngày giờ, thời gian đó sẽ không được nhập. Bạn sẽ cần nhập nó một cách riêng biệt.

>>> import datetime
>>> date.today()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'date' is not defined
>>> from datetime import date
>>> date.today()
datetime.date(2017, 9, 1)