Django之importlib模块

【1】介绍

import importlib

importlib模块是Python中用于动态加载和导入模块的内置模块

它提供了一组函数和类,使得我们可以在运行时根据需要加载模块,并且可以对已导入的模块进行操作和管理

【2】importlib模块中的import_module方法

【2.1】导入模块

python 复制代码
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函数
  • 通过该函数可以在运行时动态加载一个模块

示例

python 复制代码
# 导入模块:动态加载一个模块

import importlib

# 定义模块的名字

module_name = 'math'

# 动态导入模块

math_module = importlib.import_module(module_name)

【2.3】导入指定模块成员

  • importlib模块还提供了import_module函数的变体import_module
  • 它可以直接返回指定模块的成员

示例

python 复制代码
# 导入模块 : 动态加载一个模块
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函数实现这个功能

示例:

python 复制代码
import importlib

# 要重新加载的模块名
module_name = 'my_module'

# 加载模块
my_module = importlib.import_module(module_name)

# 重新加载模块
my_module = importlib.reload(my_module)

【2.5】获取已导入的模块列表

  • 通过sys.modules可以获取当前已导入的所有模块的字典
  • 其中键为模块名称,值为模块对象

示例:演示如何遍历已导入的模块列表

python 复制代码
import sys

for module_name,module in sys.modules.items():

    print(module.name,module)
相关推荐
129Lab几秒前
电池热管理仿真的AI加速:用Python+PINN物理信息神经网络替代传统CFD的可行性探索
pytorch·python·cfd·pinn·物理信息神经网络·仿真加速·电池热管理
墨家句子8 分钟前
服务器被反复尝试登录之后:fail2ban 加密钥登录的五道加固
linux·后端
炸鸡叔8 分钟前
我做了 BotBus:从手机续聊本地 Agent,查看文件和终端
前端·后端
漂不动9 分钟前
告别上下文爆炸:基于 Milvus-Lite 与渐进式披露的动态 Agent 工具挂载实践
后端
用户2986985301413 分钟前
Python 中 HTML 转 PDF 的实现方法
python·html·api
答案是你24 分钟前
YOLOE 开放词汇检测 + ONNX / TensorRT 推理,开源了!
python·深度学习·yolo·目标检测·计算机视觉·视觉检测
2601_9628857229 分钟前
AlphaFeed 支持哪些 K 线周期?period参数怎么传?
前端·数据库·python
老歌老听老掉牙32 分钟前
基于 Python 的顺次文本拼接:以 MCD 数控文件为例
python·数控·mcd
朝朝辞暮i34 分钟前
VLA 系统学习第 7 课:loss.backward() 到底做了什么?——从计算图到反向传播
人工智能·python·深度学习·神经网络·vla
Gust of wind38 分钟前
串与KMP模式匹配:存储结构、基本操作、next数组手算
c语言·数据结构·后端·算法