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