找回密码
 会员注册
查看: 17|回复: 0

python之importlib.import_module动态导入讲解

[复制链接]

10

主题

0

回帖

31

积分

新手上路

积分
31
发表于 2024-9-6 15:02:06 | 显示全部楼层 |阅读模式
前言在某些情况下,你可能不知道在编写代码时需要导入哪个模块,或者你可能想要根据配置或用户输入来导入不同的模块。在这些情况下,可以采用importlib.import_module模块,它允许你在运行时动态地导入一个模块使用用三个例子来快速记录一下用法例子一importimportlibmodule_name="math"#使用importlib.import_module来导入模块math_module=importlib.import_module(module_name)#现在可以像使用math一样使用math_moduleprint(math_module.sqrt(16))importlib.import_module有以下参数:name:要导入的模块的名称(必须是字符串)。package:这是一个可选参数。如果提供了包名,那么导入会相对于该包进行。这对于处理包内部的相对导入很有用。例子二文件情况:infer.pyimportpandasaspdfromsklearn.svmimportOneClassSVMfrom.preprocessingimportpredefinfer(data:pd.DataFrame):data=pre(data)svm=OneClassSVM()svm.fit(data[['x0','x1']])res=svm.predict(data[['x0','x1']])returnres调用的preprocessing.pyimportpandasaspddefpre(data:pd.DataFrame):data['x1']=data['x0'].rolling(10).mean()data['x1']=data['x1'].fillna(1)returndatainit文件为from.preprocessingimportprefrom.inferimportinfermain函数importimportlibimportpandasaspdmodulew=importlib.import_module('pkg.infer')print(modulew)x=pd.DataFrame({'x0':[1,3,2,4,5,6,4,5]})print(modulew.infer(x))例子三如果将pkg放在algo下面呢,这时要利用package#多层filesmodulew=importlib.import_module(name='.algo.pkg.infer',package="test_import")print(modulew)x=pd.DataFrame({'x0':[1,3,2,4,5,6,4,5]})print(modulew.infer(x))推荐阅读:我的2022届互联网校招分享我的2021总结浅谈算法岗和开发岗的区别互联网校招研发薪资汇总公众号:AI蜗牛车保持谦逊、保持自律、保持进步发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)发送【1222】获取一份不错的leetcode刷题笔记发送【AI四大名著】获取四本经典AI电子书
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-10 05:49 , Processed in 1.235863 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表