【学习】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 importlibparams = 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 的值,从而实现动态导入模块。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/771656.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试算法-103-对链表进行插入排序

题目 给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序…

基于单片机的太阳能充电系统设计

摘要:本文所设计的太阳能充电系统主要由以下几个模块组成:STC89C52 主控模块、TP4056 充电电路、电压AD 采集模块、LCD1602 液晶显示模块和太阳能充电电池等组成。此太阳能充电器制作简单,性价比高,性能稳定。 关键词:LCD1602;太阳能充电系统;ADC0832 太阳能充电系统的充…

MySQL WHERE 条件查询

我们通常要求在执行 SELECT 查询时,都要带上查询条件。那这一节,我们就来学习一些简单的 WHERE 条件查询。 我们仍然以技术派文章表 article 为例,比如说我们要查找标题为“聊聊分库分表”的文章,可以这么写: SELECT *…

echarts做水滴图;解决[echarts] unknown series liquidfill 水球加载问题

一份echarts示例代码,包含水滴图 直接在echarts里使用水滴图liquidfill会报错[echarts] unknown series liquidfill 解决方案:需要下载echarts-liquidfill依赖 echarts-liquidfill2兼容echarts4; echarts-liquidfill3兼容echarts5; 例如:我的…

Error establishing a database connection

WordPress网站打开的时候出现“Error establishing a database connection”是怎么了呢?被黑了吗? 大家在使用WordPress建站时常遇到这样的问题。根据我的经验,出现这个情况一般有下以几种原因: 1、数据库密码填写的有误。需要检…

IDEA使用手册

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【vue3(七)】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、ref二、TS接口泛型规范1.创建ts文件,定义接口2.引入规范 三、props的使用四、生命周期(生命周期函数,生命周期钩子&…

MySQL多表联查函数

1 多表联查 1.1 表之间的关系 表和表的关系有: 一对一 老公 --> 老婆 , 人 ---> 身份证/户口本 一对多 皇帝 --> 妻妾 , 人 ---> 房/车 多对多 订单 --> 商品 1.2 合并结果集 合并结果集,是将多表查询的结果纵向合并 语法: select field1,field2 from t1 un…

rust中字符串String常用方法和注意事项

Rust 中通常说的字符串指的是&#xff1a;String 和 &str(字符串字面值、或者叫字符串切片)这两种类型。str是rust中基础字符串类型&#xff0c;String是标准库里面的类型。Rust 中的字符串本质上是&#xff1a;Byte的集合&#xff08;Vec<u8>&#xff09; 基础类型…

【第三方登录】Google邮箱

登录谷歌邮箱开发者 https://console.developers.google.com/ 先创建项目 我们用的web应用 设置回调 核心主要&#xff1a; 1.创建应用 2.创建客户端ID 3.设置域名和重定向URL 4.对外公开&#xff0c;这样所有的gmail邮箱 都能参与测试PHP代码实现 引入第三方包 h…

Git 的cherry-pick含义

目录 1. cherry-pick的基本概念 2. cherry-pick的使用场景 3. cherry-pick的使用方法 结论 1. cherry-pick的基本概念 git cherry-pick是一个Git命令&#xff0c;它允许你选择一个或多个其他分支上的提交&#xff08;commits&#xff09;&#xff0c;并将它们复制到你当前的…

Spring实例化Bean的三种方式

参考资料&#xff1a; Core Technologies 核心技术 spring实例化bean的三种方式 构造器来实例化bean 静态工厂方法实例化bean 非静态工厂方法实例化bean_spring中有参构造器实例化-CSDN博客 1. 构造函数 1.1. 空参构造函数 下面这样表示调用空参构造函数&#xff0c;使用p…

HTML5入门笔记

我使用中英互译的方法来制作本次笔记&#xff0c;课程来自网上精品资源 VSCode相关快捷键 选择文件夹和拖拽文件夹来打开 使用&#xff01;加enter&#xff08;回车&#xff09;&#xff0c;输入默认模板 <!DOCTYPE html> <html lang"en"> <head&…

go的Job Scheduling

背景 司内线上服务有很多异步脚本,大量冗余代码,管理很不方便 急需一个美丽的框架,让代码变得美好 包 go get github.com/go-co-op/gocron/v2 介绍 gocron is a job scheduling package which lets you run Go functions at pre-determined intervals. 概念 Job Job封…

linux查看usb是3.0还是2.0

1 作为device cat /sys/devices/platform/10320000.usb30drd/10320000.dwc3/udc/10320000.dwc3/current_speed 或 /sys/class/udc/10320000.dwc3/current_speed 如下 high-speed usb2.0 super-speed usb3.0 2 作为host linux下使用以下命令查看 &#xff0c;如果显示 速率为…

python关于字符串基础学习

字符串 python字符串是不可改变的 Python不支持单字符类型&#xff0c;单字符也是作为一个字符串使用的。 字符串编码 python3直接支持Unicode,可以表示世界上任何书面语言的字符 python3的字符默认就是16位Unicode编码&#xff0c;ASCII是Unicode的子集 使用内置函数 ord()…

c++初步

作业&#xff1a; 定义自己的命名空间&#xff0c;其中有string类型的变量&#xff0c;再定义两个函数&#xff0c;一个函数完成字符串的输入&#xff0c;一个函数完成求字符串长度&#xff0c;再定义一个全局函数完成对该字符串的反转 #include <iostream> #include &…

MySQL数据库索引失效的常见情况

MySQL数据库索引失效的常见情况 01 索引失效负面后果 在MySQL数据库中&#xff0c;当索引失效时&#xff0c;可能会导致以下后果&#xff1a; 全表扫描&#xff1a;如果索引失效&#xff0c;MySQL 可能会选择执行全表扫描来检索数据&#xff0c;这将导致性能下降&#xff0c;…

vue2 配置@指向src

使用的是vue cli创建的项目。 1.安装 path 如果在 Node.js 环境中运行代码&#xff0c;path 模块默认是可用的&#xff0c;则不需要单独安装&#xff0c;否则输入下面命令安装path npm i path -S 2.找到vue.config.js文件&#xff1a; const { defineConfig } require(vu…

辽渤湾海现已加入2024第七届燕窝天然滋补品博览会

参展企业介绍 大连辽渤湾海产品有限公司&#xff0c;是一家主营海参、鲍鱼、海胆等大连海产品的加工和销售的综合型水产企业&#xff0c;拥有国内精良的整条加工流水线&#xff0c;拥有上千平米的现代化加工办公场地的现代化企业。现已发展成为大连海参产品的主导型深加工基地。…