Python動態匯入模組

2021-12-29 16:36:23 字數 1318 閱讀 7143

如果匯入的模組不存在,python直譯器會報 importerror 錯誤:

>>> import something

traceback (most recent call last):

file "", line 1, in

importerror: no module named something

有的時候,兩個不同的模組提供了相同的功能,比如stringiocstringio都提供了stringio這個功能。

這是因為python是動態語言,解釋執行,因此python**執行速度慢。

如果要提高python**的執行速度,最簡單的方法是把某些關鍵函式用 c 語言重寫,這樣就能大大提高執行速度。

同樣的功能,stringio 是純python**編寫的,而 cstringio 部分函式是 c 寫的,因此 cstringio 執行速度更快。

利用importerror錯誤,我們經常在python中動態匯入模組:

try:

from cstringio import stringio

except importerror:

from stringio import stringio

上述**先嘗試從cstringio匯入,如果失敗了(比如cstringio沒有被安裝),再嘗試從stringio匯入。這樣,如果cstringio模組存在,則我們將獲得更快的執行速度,如果cstringio不存在,則頂多**執行速度會變慢,但不會影響**的正常執行。

try的作用是捕獲錯誤,並在捕獲到指定錯誤時執行except語句。

利用import ... as ...,還可以動態匯入不同名稱的模組。

python 2.6/2.7提供了json模組,但python 2.5以及更早版本沒有json模組,不過可以安裝乙個******json模組,這兩個模組提供的函式簽名和功能都一模一樣。

試寫出匯入json模組的**,能在python 2.5/2.6/2.7都正常執行。

?不會了怎麼辦

先嘗試匯入json,如果失敗,再嘗試匯入******json as json

參考**:

try:

import json

except importerror:

import ******json as json

print json.dumps()

python基礎 動態匯入模組

動態匯入模組方法1 import 說明 1.函式功能用於動態的匯入模組,主要用於反射或者延遲載入模組。2.import module 相當於import module 舉例說明 首先建立乙個模組目錄lib,然後在目錄內建立乙個模組為 aa.py os.path lib aa.py 模組 為 clas...

動態匯入模組

正常模組匯入方式 import module 模組路徑 同時匯入多個模組 import os,sys,socket 動態匯入模組允許我們通過字串形式來匯入模組 import os,sys my sys import sys my os import os print sys.version prin...

python學習之 動態匯入模組

python 說明 1.函式功能用於動態的匯入模組,主要用於反射或者延遲載入模組。2.import module 相當於import module 舉例說明 首先建立乙個模組目錄lib,然後在目錄內建立乙個模組為 aa.py 模組 為 class c object def str self retu...