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

Best Practice: แก้โมดูล Python แล้ว Reload ทดสอบทันที

แก้โค้ดโมดูล แล้วอยากทดสอบใน Interactive Shell ทันที ไม่ต้อง Restart Shell ใช้ reload()

Python 2

>>> import mymodule
>>> # แก้ไข mymodule.py
>>> reload(mymodule)

Python 3 (ย้ายไปอยู่ใน imp แล้ว Deprecated ใช้ importlib แทน)

>>> import importlib
>>> import mymodule
>>> # แก้ไข mymodule.py
>>> importlib.reload(mymodule)

ข้อจำกัด

  • ทำงานได้เฉพาะ import module ไม่ใช่ from module import name
  • Object ที่ Import ไปแล้ว (เช่น from mymodule import func) จะ ไม่ Update ต้อง Import ใหม่
  • Extension Module (C Extension) ไม่รองรับ Reload
เคล็ดลับ: ใช้ IPython/Jupyter มี Magic Command %autoreload 2 Reload อัตโนมัติทุกครั้งก่อนรัน Cell