中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現Python importlib動態導入模塊

發布時間:2020-08-03 11:34:10 來源:億速云 閱讀:341 作者:小豬 欄目:開發技術

小編這次要給大家分享的是如何實現Python importlib動態導入模塊,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

閱讀目錄

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

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

importlib使用

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

starnight:EXP-M starnight$ ls scripts/
__init__.py   __pycache__   test1.py    test2.py    test3.py
starnight: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

  而我們需要動態傳入腳本名,來選用此時要執行的功能:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import importlib

script_name = input('please input script_name : ')     # 手動輸入腳本名               
module = importlib.import_module('scripts.{}'.format(script_name))    # 動態導入相應模塊
func = module.poc('')      # 執行腳本功能
print(module.description)    # 獲取腳本描述信息
please input script_name : test1
it is a test1
it is a test1

...

please input script_name : test3
it is a test3
it is a test3

  當我們動態給定腳本名字時,就會動態的導入該模塊,執行相應的功能。

importlib其他介紹
  python doc: importlib

  importlib中的幾個函數:__import__、import_module、find_loader、invalidate_caches、reload

"Note Programmatic importing of modules should use import_module() instead of this function."
  當進行編程時,使用import_module,如上使用該模塊。

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

看完這篇關于如何實現Python importlib動態導入模塊的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

咸宁市| 七台河市| 永川市| 喀喇沁旗| 棋牌| 合阳县| 谷城县| 闻喜县| 会同县| 承德市| 德阳市| 顺义区| 泗洪县| 稻城县| 高陵县| 吉木萨尔县| 洞口县| 蓝山县| 类乌齐县| 阜康市| 崇信县| 准格尔旗| 太和县| 九台市| 棋牌| 波密县| 郧西县| 茂名市| 建始县| 巴林左旗| 廊坊市| 平乐县| 铅山县| 阳城县| 会理县| 出国| 邹城市| 江都市| 瓮安县| 普兰店市| 石渠县|