2017-05-27

Python Module 模組

任何 Python 檔案都可以作為 module 來 import。

first.py
def a():
    print('This is a from first')
直接 import 後就可以使用。
import first
first.a() # This is a from first
但是一個完整的 module 是需要附上測試程式的,可是測試程式只會在「直接」執行時使用,如果是 import,那就不要執行測試程式。

可以使用全域變數 __name__ 來判斷,到底是直接執行或者是 import。

second.py
def a():
    print('__name__ of a is ' + __name__)

if __name__ == '__main__': # 直接執行時,__name__ 是 __main__
    print('start test...')
    a()
直接執行 second.py。
start test...
__name__ of a is __main__
當作 module 來 import,__name__ 變成是 module 名稱。
import second
second.a() # __name__ of a is second
重複 import 相同的 module,Python 並不會做任何事情,也就是不會重複 impot,即使 module 已經經過修改,但可以用 reload() 來強迫重新 import,但有點棘手,倒不如重新啟動直譯器。
---
---
---

沒有留言:

張貼留言