Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python 规则引擎

作者:冷宸枫   发布日期:2026-01-01   浏览:148

# 示例代码: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)

解释说明:

  1. RuleEngine 类:这是一个简单的规则引擎类,包含两个主要方法:

    • add_rule(condition, action):用于添加规则,每个规则由一个条件函数和一个动作函数组成。
    • evaluate(data):用于评估输入的数据,并根据条件触发相应的动作。
  2. 规则定义

    • rule1_conditionrule1_action 是第一条规则,当温度超过 30°C 时,触发打印温度过高的信息。
    • rule2_conditionrule2_action 是第二条规则,当湿度超过 70% 时,触发打印湿度过高的信息。
  3. 创建规则引擎实例并添加规则:通过 engine.add_rule() 方法将规则添加到引擎中。

  4. 模拟数据:创建一个包含温度和湿度的数据字典。

  5. 评估数据并触发规则:调用 engine.evaluate(data) 方法来评估数据,并根据条件触发相应的动作。

上一篇:python 二进制

下一篇:python lower函数

大家都在看

python时间格式

pythoneval函数用法

python读取文件路径

staticmethod在python中有

python 保存json文件

python开发windows应用程序

python中len是什么意思

python ord和chr

python中的yield

python自定义异常

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站