python 動(dòng)態(tài)加載的實(shí)現(xiàn)方法
腳本語言都有一個(gè)優(yōu)點(diǎn),就是動(dòng)態(tài)加載。lua語言有這個(gè)優(yōu)點(diǎn),python也有這個(gè)特性。說簡單點(diǎn)就是,如果開發(fā)者發(fā)現(xiàn)自己的代碼有bug,那么他可以在不關(guān)閉原來代碼的基礎(chǔ)之上,動(dòng)態(tài)替換模塊。替換方法一般用reload來完成。
1、reload的基本原理
reload主要做了兩個(gè)動(dòng)作,刪除原來的模塊,添加新的模塊
2、reload的等效代碼
del sys.modules[module_name] __import__(module_name)
3、reload使用的時(shí)候要注意什么
3.1 reload的入口參數(shù)是module,不是字符串,即
import sys module = sys.modules[module_name]
3.2 重載的文件只是對應(yīng)模塊的__init__.py文件,如果是其他文件,則不會生效
3.3 如果是目錄中其他文件,則需要分別重新加載,比如
import sys del sys.modules['module_name:sub_file'] __import__('module_name:sub_file')
或者是
reload(sys.modules['module_name:sub_file'])
總結(jié)
以上所述是小編給大家介紹的python 動(dòng)態(tài)加載的實(shí)現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家的支持!
相關(guān)文章
python 實(shí)現(xiàn)多維數(shù)組(array)排序
今天小編就為大家分享一篇python 實(shí)現(xiàn)多維數(shù)組(array)排序,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python之print函數(shù)里逗號和加號的區(qū)別及說明
這篇文章主要介紹了Python之print函數(shù)里逗號和加號的區(qū)別及說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02python安裝mysql的依賴包mysql-python操作
這篇文章主要介紹了python安裝mysql的依賴包mysql-python操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01python使用wxpython開發(fā)簡單記事本的方法
這篇文章主要介紹了python使用wxpython開發(fā)簡單記事本的方法,涉及Python使用wxPython實(shí)現(xiàn)桌面圖形應(yīng)用程序的技巧,需要的朋友可以參考下2015-05-05tensorflow 2.1.0 安裝與實(shí)戰(zhàn)教程(CASIA FACE v5)
這篇文章主要介紹了tensorflow 2.1.0 安裝與實(shí)戰(zhàn)(CASIA FACE v5),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Python報(bào)錯(cuò)error: subprocess-exited-with-error解決辦法
在Python開發(fā)中,遇到subprocess-exited-with-error通常是由依賴缺失、權(quán)限問題、環(huán)境配置錯(cuò)誤或兼容性問題導(dǎo)致,修復(fù)方法包括安裝依賴、使用虛擬環(huán)境、提升權(quán)限、檢查路徑和命令,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10