【学习】python标准库importlib.import_module,用于动态导入模块。

importlib.import_module 是 Python 标准库中的一部分,用于在运行时动态地导入模块。
具体用法示例:

# module1.py
def say_hello():
    print("Hello from module 1!")

# module2.py
def say_hello():
    print("Hello from module 2!")

import importlib

# 根据条件选择要导入的模块
condition = True  # 假设条件为True,导入module1.py
if condition:
    module_name = 'module1'
else:
    module_name = 'module2'

# 使用 importlib.import_module() 导入模块
module = importlib.import_module(module_name)

# 调用导入的模块中的函数
module.say_hello()

再看一个关于文件夹结构的例子:

a #文件夹
	│a.py
	│__init__.py
b #文件夹
	│b.py
	│__init__.py
	├─c#文件夹
		│c.py
		│__init__.py

# c.py 中内容
args = {'a':1}

class C:
    
    def c(self):
        pass

向a模块中导入c.py 中的对象,
a.py代码如下:

import importlib

params = importlib.import_module('b.c.c') #绝对导入
params_ = importlib.import_module('.c.c',package='b') #相对导入

# 对象中取出需要的对象
params.args #取出变量
params.C  #取出class C
params.C.c  #取出class C 中的c 方法

这里的a.py的 父文件夹a 的 同级文件夹b,文件夹b下的所有文件都可以进行导入。

params = importlib.import_module('b.c.c') #绝对导入

所以对于上述代码,导入的就是当前py文件的父文件夹的同级文件夹下的py文件。所以,阅读代码的时候要去父文件夹的同级文件夹中寻找相关代码。

总结

其实就类似于接收一个参数module_name, 通过接收不同module_name 的值,从而实现动态导入模块。

相关推荐

  1. python标准模块-1

    2024-03-27 23:08:04       14 阅读
  2. Python 标准中常用的模块

    2024-03-27 23:08:04       11 阅读
  3. Python 标准SYS

    2024-03-27 23:08:04       36 阅读
  4. 如何系统地学习Python(四)标准(二)

    2024-03-27 23:08:04       13 阅读
  5. MFC 静态导入动态导入方式

    2024-03-27 23:08:04       21 阅读
  6. Python模块相对导入

    2024-03-27 23:08:04       37 阅读

最近更新

  1. Oracle数据库服务器CPU占用率巨高的问题排查思路

    2024-03-27 23:08:04       0 阅读
  2. WebKit简介及工作流程

    2024-03-27 23:08:04       0 阅读
  3. nlp中tokenizer用法

    2024-03-27 23:08:04       1 阅读
  4. 2.Date类型的请求参数

    2024-03-27 23:08:04       0 阅读
  5. 基于antdesign封装一个react的上传组件

    2024-03-27 23:08:04       0 阅读

热门阅读

  1. 使用指纹的锁屏解锁流程

    2024-03-27 23:08:04       24 阅读
  2. ChatGPT编码技巧:探索人工智能写代码的奥秘

    2024-03-27 23:08:04       21 阅读
  3. 在 Redis 中,`EVAL` 命令用于执行一段 Lua 脚本

    2024-03-27 23:08:04       16 阅读
  4. 数学分析复习:实数项级数的收敛

    2024-03-27 23:08:04       16 阅读
  5. 查看windwos系统信息

    2024-03-27 23:08:04       19 阅读
  6. 关于C/C++头文件引起的编译问题

    2024-03-27 23:08:04       19 阅读
  7. 美易官方:盘前道指期货涨0.5%,游戏驿站跌逾15%

    2024-03-27 23:08:04       14 阅读
  8. p8670题解

    2024-03-27 23:08:04       17 阅读
  9. C++程序阅读题 面试题目29例

    2024-03-27 23:08:04       16 阅读