Python设计模式之解释器模式原理与用法实例分析

 更新时间:2019年01月10日 14:18:23   作者:Andy冉明  
这篇文章主要介绍了Python设计模式之解释器模式原理与用法,结合具体实例形式分析了解释器模式的概念、原理、定义及使用方法,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • Python islower()函数的使用详解

    Python islower()函数的使用详解

    这篇文章主要介绍了Python islower()函数使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • python文件读取和导包的绝对路径、相对路径详解

    python文件读取和导包的绝对路径、相对路径详解

    每次在读或写文件时,获取脚本文件的绝对路径和相对路径时很容易搞混,下面这篇文章主要给大家介绍了关于python文件读取和导包的绝对路径、相对路径的相关资料,需要的朋友可以参考下
    2022-04-04
  • Python PaddleGAN实现照片人物性别反转

    Python PaddleGAN实现照片人物性别反转

    PaddleGAN中的styleganv2editing.py是支持性别编辑的。所以本文将介绍如何通过调整参数,来试着实现一下照片的性别翻转。感兴趣的小伙伴可以学习一下
    2021-12-12
  • Django数据结果集序列化并展示实现过程

    Django数据结果集序列化并展示实现过程

    这篇文章主要介绍了Django数据结果集序列化并展示实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • python爱心表白 每天都是浪漫七夕!

    python爱心表白 每天都是浪漫七夕!

    每天都是浪漫七夕!这篇文章主要为大家详细介绍了python爱心表白,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Python练习之读取XML节点和属性值的方法

    Python练习之读取XML节点和属性值的方法

    这篇文章主要介绍了Python练习之读取XML节点和属性值的方法,通过parse函数可以读取XML文档,该函数返回ElementTree类型的对象,通过该对象的iterfind方法可以对XML中特定节点进行迭代
    2022-06-06
  • 如何基于Python实现自动扫雷

    如何基于Python实现自动扫雷

    这篇文章主要介绍了如何基于Python实现自动扫雷,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Python中函数参数匹配模型详解

    Python中函数参数匹配模型详解

    这篇文章主要介绍了Python函数参数匹配模型,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • conda换源安装torch+vscode分布式训练调试的实现

    conda换源安装torch+vscode分布式训练调试的实现

    本文主要介绍了conda换源安装torch+vscode分布式训练调试的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • Python 循环缓冲区

    Python 循环缓冲区

    Python 循环缓冲区是一种快速高效的数据存储方式。 循环数据缓冲区是一个队列,可以用作容纳单个对象的容器,这篇文章主要介绍了Python 循环缓冲区,需要的朋友可以参考下
    2023-09-09

最新评论