本文实例讲述了Python设计模式之解释器模式原理与用法。分享给大家供大家参考,具体如下:
解释器模式(Interpreter Pattern):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子.
下面是一个解释器模式的demo:
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'Andy' """ 大话设计模式 设计模式——解释器模式 解释器模式(Interpreter Pattern):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. """ #抽象一个解释器类 class AbstractExpression(object): def interpreter(self, context): pass #具体解释器——终端 继承抽象解释器 class TerminalExpression(AbstractExpression): def interpreter(self, context): print "终端解释器",context #具体解释器——终端 继承抽象解释器 class NotTerminalExpression(AbstractExpression): def interpreter(self, context): print "非终端解释器",context class Context(object): def __init__(self): self.name = "" if __name__ == "__main__": context = Context() context.name = 'Andy' arr_list = [NotTerminalExpression(),TerminalExpression(),TerminalExpression()] for entry in arr_list: entry.interpreter(context)
运行结果:
上面类的设计如下图:
当有一个语言需要执行,并且可以将该语言的句子表示为抽象语法树时,可使用解释器模式
更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
本文向大家介绍javascript设计模式 – 解释器模式原理与用法实例分析,包括了javascript设计模式 – 解释器模式原理与用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript设计模式 – 解释器模式原理与用法。分享给大家供大家参考,具体如下: 介绍:之前在做java开发时,数据库的增删改查特别频繁,并且场景不同需要用到的SQL语句页都不同,如何用调用
本文向大家介绍PHP设计模式之策略模式原理与用法实例分析,包括了PHP设计模式之策略模式原理与用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP设计模式之策略模式原理与用法。分享给大家供大家参考,具体如下: 策略模式(Strategy Pattern) 策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。 策略模式指的是程序中涉及决策控制的一种模式
本文向大家介绍javascript设计模式 – 模板方法模式原理与用法实例分析,包括了javascript设计模式 – 模板方法模式原理与用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript设计模式 – 模板方法模式原理与用法。分享给大家供大家参考,具体如下: 介绍:模板方法模式是结构最简单的行为型设计模式,在其结构中只存在父类与子类之间的继承关系。使用模板方法
本文向大家介绍javascript设计模式 – 原型模式原理与应用实例分析,包括了javascript设计模式 – 原型模式原理与应用实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript设计模式 – 原型模式原理与应用。分享给大家供大家参考,具体如下: 介绍:在日常的开发过程中,我们经常会利用到前端模板引擎来做页面渲染,因为存在很多页面结构相同,内容不同的场景。这种
本文向大家介绍Python设计模式之代理模式实例详解,包括了Python设计模式之代理模式实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python设计模式之代理模式。分享给大家供大家参考,具体如下: 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问 运行结果: jiaojiao 送你洋娃娃 jiaojiao 送你花 jiaojiao 送你巧克
本文向大家介绍javascript设计模式 – 职责链模式原理与用法实例分析,包括了javascript设计模式 – 职责链模式原理与用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript设计模式 – 职责链模式原理与用法。分享给大家供大家参考,具体如下: 介绍:很多情况下,在一个软件系统中可以处理某个请求的对象不止一个。例如一个网络请求过来,需要有对象去解析re