欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2020年04月16日 09:39:08   作者:starnight_cyber  
這篇文章主要介紹了Python importlib動態(tài)導(dǎo)入模塊實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

閱讀目錄

  一般而言,當(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.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

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

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

import importlib

script_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 : test1
it is a test1
it is a test1

...

please input script_name : test3
it is a test3
it 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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python設(shè)計tcp數(shù)據(jù)包協(xié)議類的例子

    python設(shè)計tcp數(shù)據(jù)包協(xié)議類的例子

    今天小編就為大家分享一篇python設(shè)計tcp數(shù)據(jù)包協(xié)議類的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • pytorch構(gòu)建網(wǎng)絡(luò)模型的4種方法

    pytorch構(gòu)建網(wǎng)絡(luò)模型的4種方法

    這篇文章主要為大家詳細(xì)介紹了pytorch構(gòu)建網(wǎng)絡(luò)模型的4種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 基于django和dropzone.js實現(xiàn)上傳文件

    基于django和dropzone.js實現(xiàn)上傳文件

    這篇文章主要介紹了基于django和dropzone.js實現(xiàn)上傳文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • python cookie反爬處理的實現(xiàn)

    python cookie反爬處理的實現(xiàn)

    這篇文章主要介紹了python cookie反爬處理的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • python神經(jīng)網(wǎng)絡(luò)編程實現(xiàn)手寫數(shù)字識別

    python神經(jīng)網(wǎng)絡(luò)編程實現(xiàn)手寫數(shù)字識別

    這篇文章主要為大家詳細(xì)介紹了python神經(jīng)網(wǎng)絡(luò)編程實現(xiàn)手寫數(shù)字識別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • numba CUDA報錯的問題解決

    numba CUDA報錯的問題解決

    本文主要介紹了numba CUDA報錯的問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • wxpython自定義下拉列表框過程圖解

    wxpython自定義下拉列表框過程圖解

    這篇文章主要介紹了wxpython自定義下拉列表框過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • python列表生成式與列表生成器的使用

    python列表生成式與列表生成器的使用

    本篇文章主要介紹了python列表生成式與列表生成器的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • python進(jìn)行圖像邊緣檢測的詳細(xì)教程

    python進(jìn)行圖像邊緣檢測的詳細(xì)教程

    相信大家對于邊緣檢測這幾個詞并不陌生,但是相對于如何處理,如何進(jìn)行圖像的邊緣檢測卻無能為力、束手無策了,下面這篇文章主要給大家介紹了關(guān)于python進(jìn)行圖像邊緣檢測的詳細(xì)教程,需要的朋友可以參考下
    2023-04-04
  • python的變量和簡單數(shù)字類型詳解

    python的變量和簡單數(shù)字類型詳解

    這篇文章給大家詳細(xì)介紹了python的變量和簡單數(shù)字類型,文中介紹的很詳細(xì),相信對大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們可以參考借鑒
    2021-09-09

最新評論