python编程动态_一种基于Python编程的自定义算法动态导入实现方法与流程

本发明涉及算法处理,具体涉及种基于Python编程的自定义算法动态导入实现方法。

背景技术:

:目前,随着公众市场的不断开拓,行业客户对项目需求趋向愈发个性化,在这一环境下,“定制”或者说“个性化”成为一个项目能否打动客户的关键。以往B/S系统架构中,web端多为提供固定的公用服务,难以满足客户的自定义需求。尤其是在数据分析这一领域,针对不同的数据,处理方式算法存在明显差异,客户需求的是能够自主定义算法的服务,而目前的云端系统不能满足客户的自定义算法处理数据的需求。技术实现要素:本发明所要解决的技术问题是:针对传统技术中云端系统不能满足客户的自定义算法处理数据的需求的问题,提出一种基于Python编程的自定义算法动态导入实现方法,可供用户动态添加自定义算法。本发明解决上述技术问题采用的技术方案是:一种基于Python编程的自定义算法动态导入实现方法,包括以下步骤:a.定义新的算法存储数据类型,将实际的算法程序内容改变为算法路径;b.公开算法文件输入输出要求,将算法程序视为黑盒,系统仅提供输入,接收输出;c.开放Django文件传输接口用于接收用户自定义的算法文件并存储;d.记录算法存储路径到存储数据类型中;e.在需要调用算法时,动态导入算法程序,将数据输入算法进行处理,输出处理结果。作为进一步优化,步骤c中,在开放Django文件传输接口后,由后台管理员通过Django框架的xadmin管理平台进行算法文件上传并存储。作为进一步优化,步骤b中,将算法程序视为黑盒,系统仅关注算法的输入与输出,算法内部实现由用户自主定义。作为进一步优化,所述算法文件为Python编码文件。本发明的有益效果是:通过对算法存储类型的重新定义,将实际的算法程序内容改变为算法路径,算法内容由用户自定义,并利用Python动态导入特性以及Django文件传输系统对用户上传的算法文件进行存储和记录存储路径,系统通过调用算法完成数据处理;通过本发明可以为系统用户(特别是对数据处理算法有特别需求的系统用户)提供了在不修改已运行系统代码前提下动态的更新自定义算法的需求。具体实施方式针对传统技术中云端系统不能满足客户的自定义算法处理数据的需求的问题,本发明旨在提出一种基于Python编程的自定义算法动态导入实现方法,可供用户动态添加自定义算法。本发明的自定义算法导入功能的实现包括以下几个部分:1、算法数据类型定义:算法不再写死在程序中,而是新设计一种数据类型存储算法;2、算法结构定义:保证不同的算法具有相同的输入与输出,以便系统调用;3、算法动态调用:针对新的数据结构的普适性算法调用流程;4、文件传输与存储:利用Django框架的文件传输相关功能实现。在具体实现上,本发明包括:首先,定义新的算法存储数据类型,由实际的算法程序内容改变为算法路径。公开算法文件输入输出要求,将算法程序视为黑盒,系统仅提供输入,接收输出。开放Django文件传输接口用于接收用户自定义算法文件并存储,记录路径到存储数据类型中。在需要调用算法时,动态导入算法程序,将数据输入算法进行处理,输出处理结果。其中,算法数据类型定义如下:名称类型备注IdInt主键NameVarchar算法名称PathVarchar算法文件路径Is_activeTinyint是否可用Add_timeDatetime生成时间Organization_idInt外键,算法所属组织idUser_idInt外键,算法创建者id算法文件需满足以下条件:·python编码文件;·py文件名随意,需包含Pretreatment类作为算法类,算法类中具有do_pretreatment方法;·方法接收参数为series:接收坐标点y轴数据list;label:接收坐标点x轴数据list;·方法返回:处理后的series数据list,以及处理后的label数据list;算法动态调用:基于Python动态导入特性,解析数据结构中的path属性,通过以下代码动态调用算法方法:……obj=__import__(path)#动态导入py文件pretreatment=obj.Pretreatment().do_pretreatment#将算法方法赋值给本地变量new_series,new_label=pretreatment(old_series,old_label)#传入数据得到处理结果……文件传输与存储:由于是传入第三方文件,故上传权限仅提供给后台管理员。后台管理员通过Django框架的xadmin管理平台进行文件上传。当前第1页1&nbsp2&nbsp3&nbsp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值