Python_【__import__】_ 动态导入模块、类对象或函数

Python模块导入指南:import, from...import的区别 本文深入探讨了Python中import和from...import两种模块导入方式的区别、优缺点及适用场景。import导入整个模块,访问时需加模块名前缀,避免命名冲突,适合需要频繁使用多个模块成员的情况;from...import则直接导入特定成员,代码更简洁,但可能导致命名空间污染,适合仅需使用少数模块成员的情况。文章还通过性能测试、命名空间污染、循环导入等问题,提供了最佳实践建议,如避免使用from module import *、处理循环导入、延迟导入等。最后,文章总结了在实际项目中的导入策略,强 阅读详情

在 Python 编程中,灵活性和可扩展性是其受欢迎的特点之一。其中一个强大的功能是动态导入模块、类对象或函数,Python 提供了一个内置函数 __import__ 来实现这一功能。

通过使用 __import__ 函数,可以在运行时根据条件或参数值来决定导入不同的模块,或者动态获取并使用特定的类对象或函数。

这种动态导入的能力为开发人员提供了更大的灵活性,使得代码可以根据不同的情况进行动态调整和扩展。

除了常规的模块导入外,__import__ 函数还支持按需导入子模块或指定路径下的模块,从而使得代码能够更加精确地控制所需的导入内容,这对于大型项目或需要按需加载的场景非常有用。

__import__()

语法

__import__(name[, globals[, locals[, fromlist[, level]]]])

参数

  • name:字符串,模块的路径id

说明

  1. 函数功能用于动态的导入模块,主要用于反射或者延迟加载模块。

  2. __import__(A)相当于import A

  3. __import__(A.B.C, fromlist(C,))相当于from A.B import C,如果fromlist不传入值,则返回包A,如果fromlist传入值,则返回包C

代码演示

m = __import__("conf")
print("__import__(A)结果:", m)

m = __import__("conf.c_dir")
print("__import__(A.B)结果:", m)

m = __import__("conf.c_dir", fromlist=[""])
print("__import__(A.B, fromlist=['B'])结果:", m)

执行结果

注意事项

__import__不能导入文件中的方法、类


-事必有法,然后有成- 最后祝大家早日达到测试的天花板!



 以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了

 

chatgpt赋能python:Python动态Import简介 本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。 阅读详情

相关推荐

`Python`的`导入`机制:`__import__`、`importlib`和`__path__`的`底层`工作原理。

Python 允许我们自定义导入器和加载器,以实现特殊的模块加载需求。例如,我们可以从数据库、网络或压缩文件中加载模块。自定义导入器和加载器的步骤:创建一个类,实现find_spec方法。find_spec方法应该返回一个ModuleSpec对象,或者None如果无法找到模块。创建一个类,实现和方法。方法应该创建一个新的模块对象。方法应该执行模块的代码。将元路径查找器添加到将自定义的元路径查找器对象添加到列表的开头。假设我们要从一个 ZIP 文件中加载模块。

weixin_41455464的博客 684

__import__详解

当使用import导入Python模块的时候,默认调用的是__import__()函数。直接使用该函数的情况很少见,一般用于动态加载模块。 __import__(name, globals, locals, fromlist, level)只有name是必选参数,其他都是可选参数,一般情况下直接使用name参数即可。 fromlist指明需要导入的子模块名,level指定导入方式(相对导入或者...

zzyzgg的博客 2万+

使用 Python 的 `import` 函数实现动态导入模块

函数,我们可以在运行时动态导入模块。这为我们提供了更大的灵活性,使我们能够根据程序的需要决定导入哪些模块。通过动态导入模块,我们可以编写更加通用和灵活的代码,适应不同的运行时环境和需求。然而,有时候我们可能需要在运行时动态地导入模块,而不是在代码的开头固定导入。一旦成功地动态导入了模块,我们就可以像导入模块的常规方式一样使用它。以下是一个简单的示例,演示了如何使用动态导入的。库是 Python 标准库中的一部分,提供了用于动态导入模块的功能。模块,然后使用导入的模块计算了给定数值的平方根,并打印结果。

PixelShadeZ的博客 329

Python内置函数(48)——__import__

英文文档: __import__(name,globals=None,locals=None,fromlist=(),level=0) This function is invoked by theimportstatement. It can be replaced (by importing thebuiltinsmodule and assigning tobuilti...

weixin_30938149的博客 845

SAP开发实战:用FI_DOCUMENT_CHANGE BAPI批量修改FB03凭证抬头和行项目文本(附完整ABAP代码)

本文详细介绍了如何使用SAP的FI_DOCUMENT_CHANGE BAPI批量修改FB03凭证抬头和行项目文本,提供完整的ABAP代码实现方案。通过该BAPI,开发者可以高效完成财务凭证的批量修改,确保数据一致性和审计合规性,显著提升SAP财务模块的运维效率。

weixin_29224589的博客 379

Qt快速读取Excel文件

网上很多读取方式都是如下形式,太慢了,打开文件+读取文件要6s以上,实在是受不了! QAxObject excel("Excel.Application"); excel.setProperty("Visible", false); QAxObject *work_books = excel.querySubObject("WorkBooks"); work_boo...

c+c++的博客 2万+

Python模块:import导入模块与模块的搜索路径

本文深入讲解Python中import导入模块的机制及模块搜索路径,主要内容包括: 核心概念:解释import语句工作原理及Python查找模块的路径顺序 技术原理: Python通过sys.path定义的路径列表搜索模块 搜索顺序:当前目录→PYTHONPATH→标准库目录→第三方库目录 实践应用: 基础import用法及别名设置 自定义模块路径管理方法 面向对象编程中的模块应用示例 常见问题: 模块找不到错误及解决方案 路径配置问题排查方法 编码错误的处理方法 掌握模

未来 95% 的 AI 应用将变得隐形,广泛融入日常生活。 5332

第十二节:C#工业控制编程基础--输出正弦波实验

第十二节:基于c#使用开发板输出正弦波实验 文章目录第十二节:基于c#使用开发板输出正弦波实验一、实验目的:了解采集卡DA相关函数的使用。二、实验内容:利用C#生成正弦波,然后用采集卡DA输出。三、实验步骤:1.打开Visual Studio 2013,新建窗体应用程序项目,配置好板卡dll文件。2.在窗体中放入控件,对控件进行布局排版,并修改他们的Name属性和Text属性。3.在Chart控件内选择Spline型图表,如图2。4.进入编程区域,在public partial class Form1 :

weixin_49237052的博客 2294

python 动态导入模块

1 动态导入模块 好了,大道理谈够了。让我们谈谈动态导入模块吧。 首先,让我们看一看正常的模块导入。import module 语法查看搜索路径,根据给定的名字寻找模块并导入它们。你甚至可以这样做:以逗号分割同时导入多个模块,本章代码前几行就是这样做的。 2.同时导入多个模块 import sys, os, re, unittest

职场里拉开差距的不是知识,而是认知! 4423

三维重建Fusion中的TSDF算法通俗描述

看个视频 https://www.youtube.com/watch?v=8M_-lSYqACo 这是mobilefusion的视频,大家先了解一下,看到在三维重建的时候外面有个长方体包围盒了吗? 数据准备: 我们不同角度拍摄的RGB图、深度图和相应的pose.txt。 步骤: 1.建立长方体包围盒 要建立一个长方体包围盒。让所有的三维点都在这个长方体里面。 假设z方向垂直相机。 很明显,x,y方...

qq_30339595的博客 1万+

eDP接口信号组成认识

eDP接口信号主要由Main Link、AUXCH与HPD三部分组成,如下图所示。 Main Link:表示主通道,用来传输各类型视频数据和音频数据; AUX CH:表示辅助通道,用于传输低带宽需求的数据,以及链路管理和设备控制信号; HPD:表示热插拔检测通道。 Main Link南1~4对数据线组成,每对数据线都是一对差分线。对于一款液晶屏而言,Main Link具体需几对数据线,这取决于屏幕的分辨率和彩色位数。 在该通道中传送的信号有视频像素信号、视频定时信号、视频格式信号、比特/像素及

精诚所至 2万+

[Python进阶] 使用__import__函数动态导入模块

在Python中,__import__是一个内置函数,用于动态导入模块。它的语法如下: __import__(name, globals=None, locals=None, fromlist=(), level=0) 其中,name是要导入的模块名称,globals和locals是可选的命名空间字典,fromlist是可选的导入对象列表,level是可选的相对导入级别。

知智 3482

博途 V16(TIA portal V16)安装教程

本文提供了西门子TIA Portal V16软件的完整安装指南。内容包括百度网盘下载链接(提取码kv69)、详细安装步骤(关闭安全保护、典型安装设置)、授权破解方法,以及PLCSIM仿真功能的使用说明。重点演示了S7-1200 PLC程序的仿真过程,解析了仿真界面各元素功能,包括状态指示灯(RUN/STOP/ERROR)、操作按钮(RUN/STOP/MRES)和网络接口状态等。通过图文并茂的方式,完整呈现了从软件安装到PLC程序仿真的全流程操作。

lingchen1906的博客 6656

python模块导入&&动态导入

目录结构如下 1.如果想在bin.py中导入all/m.py文件 bin.py是主执行文件,所以执行时python只会把他的目录binDir/加入到环境变量sys.path中,导入是否成功只能看被导入的包路径是否在binDir/下,显然是找不到all/m.py的,要想找到m.p y,必须要把all的目录“模块&包&导入”加入到sys.path # bin.py impor...

py_tester的博客 2636

AI测试入门:如何测试AI对话模型/智能体?「详细介绍」

作为测试人员,我们需要掌握特定的技能和方法来有效地测试这些复杂的AI对话模型和智能体。传统的软件测试方法在这里可能不再完全适用,我们需要开发新的测试策略和技术来应对AI系统的独特特性。在这篇文章中,我们将深入探讨如何测试AI对话模型和智能体。

blues_C的博客 6855

24、流化催化裂化的分子建模

本文探讨了流化催化裂化(FCC)的分子建模方法,重点分析了如何通过机理建模和模型修剪策略(如反应规则和随机规则)来减少计算复杂度,同时保持化学意义。文章还介绍了定量结构反应性关联(QSRC)在动力学参数确定中的应用,以及结焦对催化剂活性的影响。通过这些方法,FCC反应模型能够在预测产物分布的同时,显著提高计算效率。

s8t9u0v1w的博客 140

Python内置函数__import__()详解__import__()的基本用法 与import语句的区别 示例:动态导入模块 示例:相对导入——《跟老吕学Python编程》

函数是Python中用于动态导入模块的强大工具。通过了解这个函数的工作原理和用法,你可以更加灵活地控制模块的导入过程,实现更复杂的代码逻辑。无论是根据条件动态导入模块,还是执行相对导入,函数都能提供强大的支持。👨‍💻博主Python老吕评论,您的举手之劳将对我提供了无限的写作动力!🤞🔥《跟老吕学Python编程》《Python游戏开发实战讲解》《Python Web开发实战》《Python网络爬虫实战》《Python APP开发实战》🌐《HTML》《CSS》《Vue》💻《C语言》

Python老吕的博客 1820

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Python基础 - 模块的基本使用 import关键字导入

Python模块与import关键字详解 本文系统介绍了Python模块的基本概念、import关键字的多种用法及其执行机制。主要内容包括: 模块的核心作用:模块是组织代码的基本单位,支持代码封装与复用,提高可维护性和可扩展性。 import关键字的语法: 完整导入:import module_name(需加模块前缀调用) 部分导入:from module import name(直接调用) 别名导入:import module as alias(简化长模块名) 全量导入:from module impor

千淘万漉虽辛苦,吹尽狂沙始到金 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Python 如何动态导入模块

1.import() 动态导入 我们一般在模块开始部分通过 import 语句实现模块的导入和使用,import 本质上是使用了内置函数 __import__(). math = __import__('math') print(math.pi) # 运行结果: 3.141592653589793 注意:一般不建议自行使用__import__() 导入,其行为在 python2 和 python3 中有差异,会导致意外错误。如果需要动态导入可以使用 importlib 模块。 2.使用 import

疯魔coding君的博客 1660

python3import用法_Python3 __import__() 函数详解 动态导入(载入、加载)模块

Python3 __import__() 函数详解 动态导入(载入、加载)模块__import__()函数的主要作用是动态导入指定模块,并且可以设置模块的使用环境(全局变量集合以及局部变量集合)以及模块的相对位置,它主要用于模块的局部导入,并且支持字符串名称。一般业务逻辑中不建议直接使用__import__,而是采用importlib的import_module函数来代替,因为__import__...

weixin_39732991的博客 1102

Python通过__import__导入模块(import module)

_import__函数接受一个模块名作为参数,并返回对应的模块对象。__import__函数是一个底层的函数,通常情况下不建议直接使用它来导入模块。fromlist给出对象或子模块名,即应该根据给定名称而导入的模块名。函数可以动态地导入模块,但它并不是 Python 中首选的导入模块的方法。print(list(modules)) # 将map对象转换为列表,以便查看里面的模块对象。函数功能用于动态的导入模块,主要用于反射或者延迟加载模块。模块中的函数来导入模块,因为它们更加直观、易读和易维护。

weixin_42098295的博客 1046

python 动态导入模块、类、属性、方法

python 动态导入模块、类、属性、方法 文章目录(1)导入模块(2)通过getattr()函数获取模块的属性|类|方法 (1)导入模块 __import__(model_name, fromlist= "") 中参数fromlist的作用是什么? a. 当直接导入模块时不需要fromlist参数 model_ = __import__("test_binning") b. 需要导入某个模...

u010569893的博客 1537

27. Python模块与import导入机制

在Python中,模块是一个包含Python代码的文件(以.py为扩展名)。模块可以包含函数、类和变量,也可以包含可执行的代码。模块的主要目的是将相关的代码组织在一起,以便于重用和维护。模块的文件结构指的是Python模块在文件系统中的组织方式。一个模块通常对应一个.py文件,而包(Package)则是一个包含多个模块的目录,其中必须包含一个文件(Python 3.3+中可省略,但建议保留)。import是 Python 中用于导入模块或库的关键字,允许在当前代码中使用其他模块中定义的函数、类和变量。

weixin_43484713的博客 1181

Python-最详细模块 包的(动态)导入_python 动态导包

你是否会出现下图中导模块时找不到的情况呢?ModuleNotFoundError,也就是模块没有找到,不要慌,今天总结导包的所有问题。容器->数据的封装函数->语句的封装类一>方法和属性的封装模块->模块就是程序,.py文件就是模块。

2501_90392091的博客 1007

python导入模块语句_python 模块导入详解

本文不讨论 Python 的导入机制(底层实现细节),仅讨论模块与包,以及导入语句相关的概念。通常,导入模块都是使用如下语句:import...import... as ...from ... import...from ... import ... as ...一般情况下,使用以上语句导入模块已经够用的。但是在一些特殊场景中,可能还需要其他的导入方式。例如 Python 还提供了 __impor...

weixin_39878549的博客 3239

Python中动态方式导入模块

在Python中,如果要以动态方式导入模块,可以执行以下操作: module = __import__('module_name') 如果要导入子模块,你可能认为这只是一个简单的问题: module = __import__('module_name.submodule') 结果呢,当然不起作用了,你必须这么做: module = __import__('module_name.s...

thinker 969
上一篇: Python_traceback_捕获全部异常信息
下一篇: Python_魔法属性和方法
bug捕手
博客等级 码龄4年 899粉丝 417原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值