Module = ไฟล์ .py เก็บ Definitions นำไป Import ใช้ซ้ำได้
Import Process
- หาไฟล์
module_name.pyใน Current Directory - หาใน
sys.path(Environment VariablePYTHONPATH+ Site-packages) - Compile → Bytecode (
.pycใน__pycache__/) - Execute Module Code (Top-level)
- สร้าง Module Object ใส่ใน
sys.modules - Return Module Object ให้ Caller
ตัวอย่าง: fibonacci.py
def fib(n):
a, b = 0, 1
while b < n:
print(b, end=' ')
a, b = b, a + b
print()
def fib2(n):
result = []
a, b = 0, 1
while b < n:
result.append(b)
a, b = b, a + b
return result
ใช้งาน
>>> import fibonacci
>>> fibonacci.fib(1000)
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
>>> fibonacci.fib2(100)
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
Caching: sys.modules
Import ซ้ำ → คืน Cached Module Object (ไม่ Execute ซ้ำ)
>>> import fibonacci
>>> import fibonacci # ไม่รันโค้ดใหม่ คืน Object เดิม