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