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,但有點棘手,倒不如重新啟動直譯器。
---
---
---
沒有留言:
張貼留言