亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

如何實現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

长汀县| 右玉县| 清原| 从化市| 基隆市| 共和县| 安乡县| 富川| 新泰市| 云霄县| 怀化市| 沙坪坝区| 绥德县| 类乌齐县| 星座| 温宿县| 楚雄市| 太和县| 伊吾县| 昔阳县| 民权县| 达州市| 巴马| 尚志市| 洞口县| 乃东县| 海原县| 东丰县| 二连浩特市| 德清县| 根河市| 阿拉善盟| 清水河县| 龙泉市| 紫云| 萨迦县| 吉水县| 邳州市| 延庆县| 林周县| 封丘县|