首页 > 编程语言 >python 规则执行

python 规则执行

时间:2024-12-13 11:22:23浏览次数:3  
标签:__ python self rule def 规则 facts 执行 condition

# *_*coding:utf-8 *_*
# @Author : zyb
class Rule:
    def __init__(self, condition, action):
        #初始化规则:两个函数,第一个函数成立返回True,执行第二个函数
        self.condition = condition
        self.action = action
    def evaluate(self, facts):
        #评估规则:param facts: 事实字典
        if self.condition(facts):
            self.action(facts)
class Agenda:
    def __init__(self):
        self.rules = []
    #添加规则到引擎 Rule 对象
    def add_rule(self, rule):
        self.rules.append(rule)
    def run(self, facts):
        """运行规则引擎:param facts: 事实字典"""
        for rule in self.rules:
            rule.evaluate(facts)

class Fact(dict):
    def __getattr__(self, name):
        return self.get(name,None)

if __name__ == '__main__':
    # 第一个判断函数
    def one_condition_one(facts):
        print('第一个判断函数:', facts)
        return False
    # 第一个执行函数
    def one_condition_two(facts):
        print('第一个执行函数:', facts)
    # 创建规则引擎
    engine = Agenda()
    # 添加规则
    engine.add_rule(Rule(one_condition_one, one_condition_two))
    y = Fact(x=6,y=7)
    x = {'x': 6, 'y': 7}
    # 运行规则引擎
    engine.run(y)
    engine.run(x)

 

标签:__,python,self,rule,def,规则,facts,执行,condition
From: https://www.cnblogs.com/Mr-Simple001/p/18604502

相关文章

  • 学习Python的第一天
    第一课:1、Python的下载和安装,注意在安装是下面有个打勾的要勾上。2、PyCharm的下载和安装,在官网,前期使用30天。3、创建自己的博客、微博,注册博客园。第二课:1、我的第一个Python程序:第一部分:人机交互的方式:1图形化Windowsmac2命令行LinuxWindows:win+R输入cmdpri......
  • python 筛选目标区域内的站点
    想处理一下黄河流域内的国家站点数据,那么我需要筛选黄河流域内有哪些站点这里涉及到:青海、四川、甘肃、宁夏、陕西、内蒙、山西、河南、山东有这些省的所有国家站列表,但是需要筛出黄河流域内的站点我用文心一言查了查代码,py使用的是3.9,代码和文心一言给出的有点出入,尤其是使用:s......
  • 计算机毕业设计Python+知识图谱大模型AI医疗问答系统 健康膳食推荐系统 食谱推荐系统
    温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO......
  • 计算机毕业设计Python+知识图谱大模型AI医疗问答系统 健康膳食推荐系统 食谱推荐系统
    温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO......
  • python中文件的基本操作、文件读写
    python中文件的基本操作、文件读写1.基础操作1.1文件概念文件就是存储在某种长期储存设备上的一段数据。1.2基础操作打开文件读、写文件关闭文件可以只打开和关闭文件,不进行任何读写操作。1.3文件对象的方法1.3.1open()创建一个file对象,默认是以只读模式打开......
  • python中的面向对象详解
    python中的面向对象详解1.面向过程和面向对象1.1面向过程面向过程就是先分析出解决问题的步骤,再把步骤拆成一个个方法,是没有对象去调用的,通过一个个方法的执行解决问题。1.2面向对象面向对象就是将编程当成是一个事物(对象),对外界来说,事物是直接使用的,不用去管内部的情况,......
  • update语句卡住,无法执行的问题
    后台代码执行一条update语句报超时,一开始以为是数据库连接的问题,于是把这条语句拿出来单独执行发现也不行,我怀疑后台锁表了,一看还真是,以下是排查方法: --正在执行的sql,会不断刷新 selectb.SID,b.USERNAME,b.SERIAL#,spid,paddr,sql_text,b.MACHINE  fromv$proc......
  • python雪花算法
    雪花算法(SnowflakeAlgorithm)是一种用于生成唯一的ID的算法,它由Twitter开发。其生成的ID在全局范围内是唯一的,适合高并发场景。雪花算法生成的ID通常是一个64位的整数,包含多个部分,具体结构如下:1.**时间戳(41位)**:当前时间的毫秒数,能支持69年的时间范围。2.**工作机器ID(10位)**:机器......
  • 有没有大佬可以帮忙看一下我基于python爬取租房数据的代码,新手第一次发帖子可能有点乱
    这是我的代码,代码基本雏形是在本网站的一位大佬的帖子里复制过来的,经过更改爬取的网页基本信息之后,发现只能爬取一个数据,真的不知道问题出现在哪里了,本人基础很薄弱很菜鸡,但还是想搞清楚问题出现在哪里,就上来求助了importrequestsfromlxmlimportetreeimportcsv#fro......
  • python debug
    pythondebug在Python中,查看程序的调用栈(callstack)可以帮助你调试代码,了解函数调用的顺序和上下文。以下是查看Python调用栈的常用方法。1.使用traceback模块traceback是Python标准库模块,可用于打印异常发生时的调用栈或程序的当前调用栈。示例:打印当前调用栈impo......