Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Modules ทำงานอย่างไร? (Import Mechanism)

Module = ไฟล์ .py เก็บ Definitions นำไป Import ใช้ซ้ำได้

Import Process

  1. หาไฟล์ module_name.py ใน Current Directory
  2. หาใน sys.path (Environment Variable PYTHONPATH + Site-packages)
  3. Compile → Bytecode (.pyc ใน __pycache__/)
  4. Execute Module Code (Top-level)
  5. สร้าง Module Object ใส่ใน sys.modules
  6. 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 เดิม