1. 程式人生 > >Python3學習之路~7.4 動態導入模塊

Python3學習之路~7.4 動態導入模塊

sel module class ron init pri div 新建 模塊名

動態導入模塊就是只知道str類型的模塊名字符串,通過這個字符串導入模塊。

準備

首先創建一個模塊目錄lib,然後在目錄內創建一個模塊 aa.py:

# aa.py
class
C: def __init__(self): self.name = alex

然後在lib目錄平級新建測試代碼 test.py,實現動態導入模塊。

方法1: __import__

代碼:

# test.py
lib = __import__("lib.aa")
print(lib.aa.C().name)

說明:

1.函數功能用於動態的導入模塊,主要用於反射或者延遲加載模塊;

2.__import__("lib.aa")相當於動態以字符串形式導入了lib,而不是aa模塊;
3.這是python解釋器內部使用的,不建議用。

方法2:import importlib

代碼:

# test.py
import importlib
aa = importlib.import_module("lib.aa")
print(aa.C().name)

說明:

1.使用importlib進行動態導入;
2.importlib.import_module("lib.aa")相當於動態以字符串形式導入了lib下的aa模塊;
3.與上面效果一樣,官方建議用這個。

Python3學習之路~7.4 動態導入模塊