当前位置: 首页 > article >正文

Django之importlib模块

【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 sys

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

    print(module.name,module)


http://www.kler.cn/a/151981.html

相关文章:

  • 速达软件全系产品 RCE漏洞复现
  • 异常 Exception 02
  • 【JAVA面向对象编程】--- 探索子类如何继承父类
  • 你好!线性查找【JAVA】
  • 初次使用vs code时go模块安装失败的解决办法
  • 二进制搭建以太坊2.0节点-2023最新详细版文档
  • 因为jsp for循环的一个空格引起的错误
  • 验证码及其实现
  • 力扣打卡 1410-HTML实体解析器
  • Flash学习
  • 基于Linux下搭建NextCloud构建自己的私有网盘
  • B/S软件开发架构
  • 构建SQL Server链接服务器:实现跨服务器数据访问及整合
  • 被删数据库+勒索
  • lv11 嵌入式开发 轮询与中断13
  • golang面试题:字符串转成byte数组,会发生内存拷贝吗?
  • C++:OJ练习(每日练习系列)
  • RK3568 android11 实现双路I2C触摸 --GT9xx
  • exceljs读取el-upload上传的excle数据并转为json输出
  • ES6数据解构