国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Python importlib動態(tài)導(dǎo)入模塊實現(xiàn)代碼

瀏覽:131日期:2022-07-29 17:54:06

閱讀目錄

一般而言,當(dāng)我們需要某些功能的模塊時(無論是內(nèi)置模塊或自定義功能的模塊),可以通過import module 或者 from * import module的方式導(dǎo)入,這屬于靜態(tài)導(dǎo)入,很容易理解。

而如果當(dāng)我們需要在程序的運行過程時才能決定導(dǎo)入某個文件中的模塊時,并且這些文件提供了同樣的接口名字,上面說的方式就不適用了,這時候需要使用python 的動態(tài)導(dǎo)入。

importlib使用

如在scripts目錄中保存著一些功能模塊,向外提供類似的接口poc()和腳本描述信息description,需要傳入一個參數(shù)target,當(dāng)然腳本執(zhí)行的功能是不一樣的,以下只是舉例:

starnight:EXP-M starnight$ ls scripts/__init__.py __pycache__ test1.py test2.py test3.pystarnight:EXP-M starnight$ cat scripts/test1.py #!/usr/bin/env python# -*- coding:utf-8 -*-description = ’it is a test1’def poc(target): print(’it is a test1’) return True

而我們需要動態(tài)傳入腳本名,來選用此時要執(zhí)行的功能:

#!/usr/bin/env python# -*- coding:utf-8 -*-import importlibscript_name = input(’please input script_name : ’) # 手動輸入腳本名 module = importlib.import_module(’scripts.{}’.format(script_name))# 動態(tài)導(dǎo)入相應(yīng)模塊func = module.poc(’’)# 執(zhí)行腳本功能print(module.description)  # 獲取腳本描述信息

please input script_name : test1it is a test1it is a test1...please input script_name : test3it is a test3it is a test3

當(dāng)我們動態(tài)給定腳本名字時,就會動態(tài)的導(dǎo)入該模塊,執(zhí)行相應(yīng)的功能。

importlib其他介紹python doc: importlib

importlib中的幾個函數(shù):__import__、import_module、find_loader、invalidate_caches、reload

'Note Programmatic importing of modules should use import_module() instead of this function.'當(dāng)進(jìn)行編程時,使用import_module,如上使用該模塊。

find_loader用來查找模塊,reload重新載入模塊,invalidate_caches不多介紹了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 新源县| 台江县| 林西县| 道孚县| 泾阳县| 措美县| 日喀则市| 曲阜市| 虞城县| 泸溪县| 蒲城县| 固安县| 岢岚县| 焦作市| 元阳县| 河池市| 古蔺县| 马龙县| 获嘉县| 涟水县| 辽阳市| 克山县| 福泉市| 平度市| 蓝山县| 肇源县| 太仆寺旗| 依兰县| 遂平县| 乌什县| 山东省| 赣州市| 洛川县| 桑日县| 托克逊县| 印江| 安塞县| 宁乡县| 万年县| 通海县| 井冈山市|