Module = ไฟล์ .py เดียว (ชื่อ = ชื่อไฟล์ ไม่รวม .py)
Package = โฟลเดอร์ที่มีโมดูลหลายตัว + ไฟล์ __init__.py
โครงสร้าง
mypackage/ # Package
__init__.py # ทำให้เป็น Package (อาจว่างได้)
module1.py # Module
module2.py # Module
subpackage/ # Nested Package
__init__.py
module3.py
การ Import
>>> import mypackage # Import Package (รัน __init__.py)
>>> import mypackage.module1 # Import Module ใน Package
>>> from mypackage import module1 # Import Module เข้า Namespace
>>&>> from mypackage.subpackage import module3
จุดสำคัญ
- Import Package → เห็นเฉพาะสิ่งใน
__init__.py(Submodules ไม่ Auto-import) - Object ที่สร้างจาก Import ทุกอย่างเป็น Type
module - Nested Package ได้ไม่จำกัด (ต้องมี
__init__.pyทุกระดับ)
ตัวอย่าง datetime
>>> import datetime
>>> datetime.date.today() # Error! date ไม่อยู่ใน datetime namespace
>&>> from datetime import date # ต้อง Import แยก
>>> date.today() # OK