python业务规则引擎_Python中的规则引擎

我在写一些使用很多规则的系统。是时候让我组织起来让他们更有效率了。主要要求是-业务友好,易于理解,易于查找,易于维护,可测试。在

这个问题不是关于如何创建规则引擎。我不写。我的目标是想办法在一个地方维护很多规则。让一切变得简单。我需要一些专业的建议怎么做,采取什么方法。下面是我已经做过的例子来说明我正在做这项工作,而不是简单地让别人来做我的工作。在

到目前为止,我有三种方法:

1)数组类型:

在item=context.GetNextItem()

if ['banana','apple','orange'].Contains(item): EatRaw(item)

if ['banana','apple','potato'].Contains(item): BakeAndEat(item)

if ['meat','egg','potato','fish'].Contains(item): FryAndEat(item)

if ['pasta','egg','potato'].Contains(item): BoilAndEat(item)

2)每个项目的单独文件:

^{pr2}$

3)存储的数据库:

在item=context.GetNextItem()

SQL = "SELECT rule FROM rules where item='"+str(item)+"';"

for row in cursor.execute(SQL):

eval( row.rule+"(str("+item+"))" )

表格规则

在banana,EatRaw

banana,BakeAndEat

potato,BakeAndEat

potato,FryAndEat

potato,BoilAndEat

3.a)文件中的数据

文件规则.txt

在banana,EatRaw

banana,BakeAndEat

potato,BakeAndEat

potato,FryAndEat

potato,BoilAndEat

这个文件可以看作是一个UI。在

每种方法都有自己的利弊,但老实说,我对任何一种都不满意。文件增长,变得庞大,难以搜索、维护和理解。欢迎任何其他方法或建议。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值