
1 简介在实际项目中,我们可能需要在执行代码的过程中动态导入包并执行包中的相应内容,通常情况下,我们可能会将所需导入的包及对象以字符串
博客园 2023-04-06 17:22:33
(相关资料图)
在实际项目中,我们可能需要在执行代码的过程中动态导入包并执行包中的相应内容,通常情况下,我们可能会将所需导入的包及对象以字符串的形式传入,例如test.test.run,下面将介绍如何动态导入。假设存在如下包:
其中test.py的内容如下:
count = 1def run(): print("run")
下面,我们将使用test.test2.run来动态导入run方法
module = __import__( "test2.test", globals=globals(), locals=locals(), fromlist=["run"])print(module)print(getattr(module, "run"))print(getattr(module, "count"))# 结果1
__import__(name,globals=None,locals=None,fromlist=(),level=0)-> module
含义:导入模块。因为此函数是供Python解释器使用的,而不是一般用途,所以最好使用importlib.import_module()
以编程方式导入模块。
from importlib import import_modulemodule = import_module(name="test2.test")print(module)print(getattr(module, "run"))print(getattr(module, "count"))import_module(name, package=None)
存在如下包
module = import_module(name="..test2", package="test3.test3")print(module)print(getattr(module, "run"))print(getattr(module, "count"))#学习中遇到问题没人解答?小编创建了一个Python学习交流群:725638078# 结果1
上述结果导入了test3.test2,name只能设置package以内的包。
str_data = "test2.test"exec( "import {} as t\n\\print(t.run())\n\print(t.count)\n".format( str_data ))
上述方式不推荐,其实就是相当于本地导入然后将代码作为参数添加到exec的参数中。
补充
关于importlib模块,还有一个方法我们需要去注意一下,就是reload方法,但我们在代码执行过程中动态的修改了某个包的内容时,想要立即生效,可以使用reload方法去重载对应的包即可。
1 简介在实际项目中,我们可能需要在执行代码的过程中动态导入包并执行包中的相应内容,通常情况下,我们可能会将所需导入的包及对象以字符串
观点网讯:4月6日消息,香港土地注册处发布3月楼宇买卖表现。今年3月,香港楼宇买卖合约数目和金额为8599宗和688 77亿元,按年上升124 6%和97 7%
驻马店市第三高级中学高一年级举行本学期第一次月考
》》》天津五一公园游玩攻略水上公园天津水上公园位于天津市市区西南部,水上公园始建于1950年,面积为125公顷。其中,水面面积为75公顷,陆地
值得买。 如果持有昆仑健康增多多3号的时间足够长,保额能够达到较高的水平。同时,增多多3号还可以附加投保人豁免,并且还支持减保以及保单贷
中国高铁一公里耗电一万度、白草莓是转基因水果……草长莺飞,春回大地,随着气温的回升,谣言也跟着躁动起来:“中国高铁一公里
皮蛋不能和李子一起食用,两者营养物质会起到冲突,皮蛋也不能和红糖一起食用,否则会引起身体的不适,皮蛋不能和甲鱼一起食用,同吃会会使甲
以下是联创光电在北京时间4月6日10:50分盘口异动快照:4月6日,联创光电盘中快速上涨,5分钟内涨幅超过2%,截至10点50分,报34 84元,成交3 15
文物承载着5000多年灿烂文明,是中国故事的生动讲述者。在古代敦煌,寒食日,在寺院中设乐表演,百姓携家带口前去参观,既彰显对先人的追思,
设计时间:2020年7月分类:Road-Hypercar动力系统:PorscheDKK-H3 0LH6+MGU-K功率:内燃机680hp,电机325hp,最大输出1000hp空车质量:985kg驱
你需要的东西十字螺丝刀尖嘴钳Lockwood数字门锁的众多品质特点之一是其灵活性。它不仅提供可靠的安全性,而且让房主完全控制访问权限。可以为
债券承销业务竞争日趋激烈——近期,出现了13家券商承销一笔25亿元公司债的现象。独立主承数目日益下降、承销费率跌到地板价、不合规包销现象
4月3日,在比利时布鲁塞尔,参观者在“听瓷语观世界——宋韵龙泉青瓷展”上观赏瓷器。该展览3日在比利时布鲁塞尔中国文化中
环比下降14 23%,与去年同期同比下降24 64%
朋友高升送的礼物,朋友升高升,送什么礼物给他,这个朋友肯定喜欢,不知道大家有没有好的建议。那么就送些有意义的礼物吧,可以