Python中__import__和import的区别

本文探讨了在Python中使用__import__函数而非常规import语句来动态加载模块的方法。通过实例说明了如何利用变量指定模块名及函数,解决框架内不确定具体模块名称的问题。并介绍了在非当前路径下导入模块所需配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在看代码的时候有看见使用__import__而不是常用的import 库的方式导入,

示例如下

frame_name = mini_frame
app_name = application
# import frame_name --->找frame_name.py
frame = __import__(frame_name)  # 返回值标记这 导入的这个模板
app = getattr(frame, app_name)  # 此时app就指向了 mini_frame模块中的application这个函数

在开发过程中由于不能确定框架中想要使用的具体名称以及其中的函数,因此需要用变量去存储,而如果直接用import frame_name则会导致了函数在运行的时候会在当前路径下直接导入fame_name.py文件,而实际想要调用的则是mini_frame.py文件,因此使用__import__而不是import的方式导入。
同时由于导入的过程中会存在想要导入的文件不是当前路径,往往需要在之前加上以下代码

sys.path.append(conf_info['dynamic_path'])  # 这里将路径修改为dynamic,就可以导入dynamic/mini_frame模块中的application这个函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值