加載模塊
import 與 from 都是賦值語句。
- import 把整個模塊對象賦值給一個變量名。比如 import A : 一個文件名爲 A.py 的模塊被導入,生成了一個模塊對象,被賦值爲 A。
- from module import x:x 引用了模塊中同名變量的對象。若模塊沒有被加載過,from 語句會將模塊首先加載,再創建與模塊中同名的變量名進行引用。
如果想要 import dir1.dir2.mod,則目錄 dir1、dir2 下必須有個 __init__.py。__init__.py 的作用是把這個目錄當成一個模塊來使用 , 因爲目錄並不是實際的模塊文件。__init__.py 可以隨意寫入任何 python 代碼,也可以是空的。
當代碼運行起來後,模塊就已經全部被加載到內存中了。這是如果對 python 腳本進行修改,不會在當前運行中生效。如果想立即執行新的代碼,可以重新加載這個模塊。
重新加載模塊
使用方法:
# Python3
from imp import reload
reload(modulename)
注意:
- reload 會重新加載已加載的模塊,但原來已經使用的實例還是會使用舊的模塊,而新生產的實例會使用新的模塊;
- reload 不支持
from [module] import [object]
格式的重新加載,事實上只要重新加載 module 即可。
References
[1] python模塊,reload所有模塊以及坑
[2] Python reload() 函數