# 示例代码:Python 规则引擎的简单实现
class RuleEngine:
def __init__(self):
self.rules = []
def add_rule(self, condition, action):
"""添加规则,每个规则由条件和动作组成"""
self.rules.append((condition, action))
def evaluate(self, data):
"""评估数据,触发符合条件的规则"""
for condition, action in self.rules:
if condition(data):
action(data)
# 定义一些示例规则
def rule1_condition(data):
return data['temperature'] > 30
def rule1_action(data):
print(f"温度过高: {data['temperature']}°C")
def rule2_condition(data):
return data['humidity'] > 70
def rule2_action(data):
print(f"湿度过高: {data['humidity']}%")
# 创建规则引擎实例并添加规则
engine = RuleEngine()
engine.add_rule(rule1_condition, rule1_action)
engine.add_rule(rule2_condition, rule2_action)
# 模拟数据
data = {'temperature': 35, 'humidity': 75}
# 评估数据并触发规则
engine.evaluate(data)
RuleEngine 类:这是一个简单的规则引擎类,包含两个主要方法:
add_rule(condition, action):用于添加规则,每个规则由一个条件函数和一个动作函数组成。evaluate(data):用于评估输入的数据,并根据条件触发相应的动作。规则定义:
rule1_condition 和 rule1_action 是第一条规则,当温度超过 30°C 时,触发打印温度过高的信息。rule2_condition 和 rule2_action 是第二条规则,当湿度超过 70% 时,触发打印湿度过高的信息。创建规则引擎实例并添加规则:通过 engine.add_rule() 方法将规则添加到引擎中。
模拟数据:创建一个包含温度和湿度的数据字典。
评估数据并触发规则:调用 engine.evaluate(data) 方法来评估数据,并根据条件触发相应的动作。
上一篇:python 二进制
下一篇:python lower函数
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站