如何在python的递归中应用各种规则
我有一个如何在python的递归中应用各种规则,python,recursion,Python,Recursion,我有一个规则的列表,每个规则都在不同的班级里 rules = ['RuleA', 'RuleB', 'RuleC'] 规则A。。这些是等级 每一条规则都像 class RuleA(object): def __init__(self, entry): self.entry = entry def apply(): return {data:[l1,l2], final: true} 我想像你一样申请 ces = []
规则的列表
,每个规则都在不同的班级里
rules = ['RuleA', 'RuleB', 'RuleC']
规则A。。这些是等级
每一条规则都像
class RuleA(object):
def __init__(self, entry):
self.entry = entry
def apply():
return {data:[l1,l2], final: true}
我想像你一样申请
ces = []
for entry in entries:
for rule in rules:
r= rule(entry)
res = r.apply()
if res['final']:
for e in res['data']:
ces.append(e)
# stop processing this entry
else:
go further
基本上如果res['final']为真
则表示不需要进一步处理,然后将列表项附加到ces
但是如果res['final']是flase
,那么我希望entry
通过进一步的规则,除非
res['final'] is True
如果我理解正确,您可以使用
break
语句实现您想要的功能(break
只需终止for
循环并在循环后继续执行)。您的代码可能如下所示:
if res['final']:
for e in res['data']:
ces.append(e)
break
没有必要使用
else
语句,因为如果没有停止循环,默认情况下循环将继续循环。实际上,我还希望如果final为false,那么ces
还应该检查进一步的规则和条目