【1】介紹
import? importlib
importlib模塊是Python中用于動態加載和導入模塊的內置模塊
?
它提供了一組函數和類,使得我們可以在運行時根據需要加載模塊,并且可以對已導入的模塊進行操作和管理
?【2】importlib模塊中的import_module方法
【2.1】導入模塊
import importlib# 起個變量名
module_name = 'my_package.my_func'module_f = importlib.import_module(module_name)print(module_f)
print(model_f.name)'''
my_package.my_func --------- 文件的地址'''
【2.2】動態加載模塊
- 最小單位,只能到模塊名
- importlib模塊提供了import_module函數
- 通過該函數可以在運行時動態加載一個模塊
示例
# 導入模塊:動態加載一個模塊import importlib# 定義模塊的名字module_name = 'math'# 動態導入模塊math_module = importlib.import_module(module_name)
【2.3】導入指定模塊成員
- importlib模塊還提供了import_module函數的變體import_module
- 它可以直接返回指定模塊的成員
示例
# 導入模塊 : 動態加載一個模塊
import importlib# 定義模塊的名字
module_name = 'math'
# 動態導入模塊
math_module = importlib.import_module(module_name)
# 從模塊中獲取相關的值
sqrt_func = getattr(math_module, 'sqrt')
print(sqrt_func) # <built-in function sqrt>
【2.4】重新加載模塊
- 在開發過程中,我們有時需要重新加載一個已經導入的模塊,以便應用最新的修改
- importlib模塊提供了reload函數實現這個功能
示例:
import importlib# 要重新加載的模塊名
module_name = 'my_module'# 加載模塊
my_module = importlib.import_module(module_name)# 重新加載模塊
my_module = importlib.reload(my_module)
【2.5】獲取已導入的模塊列表
- 通過sys.modules可以獲取當前已導入的所有模塊的字典
- 其中鍵為模塊名稱,值為模塊對象
示例:演示如何遍歷已導入的模塊列表
import sysfor module_name,module in sys.modules.items():print(module.name,module)