腳本語言都有一個優點,就是動態加載。lua語言有這個優點,python也有這個特性。說簡單點就是,如果開發者發現自己的代碼有bug,那么他可以在不關閉原來代碼的基礎之上,動態替換模塊。替換方法一般用reload來完成。
1、reload的基本原理
reload主要做了兩個動作,刪除原來的模塊,添加新的模塊
2、reload的等效代碼
del sys.modules[module_name]__import__(module_name)
3、reload使用的時候要注意什么
3.1 reload的入口參數是module,不是字符串,即
import sysmodule = sys.modules[module_name]
3.2 重載的文件只是對應模塊的__init__.py文件,如果是其他文件,則不會生效
3.3 如果是目錄中其他文件,則需要分別重新加載,比如
import sysdel sys.modules['module_name:sub_file']__import__('module_name:sub_file')或者是
reload(sys.modules['module_name:sub_file'])
總結
以上所述是小編給大家介紹的python 動態加載的實現方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林站長站的支持!
新聞熱點
疑難解答