Python設(shè)計(jì)模式之解釋器模式原理與用法實(shí)例分析
本文實(shí)例講述了Python設(shè)計(jì)模式之解釋器模式原理與用法。分享給大家供大家參考,具體如下:
解釋器模式(Interpreter Pattern):給定一個(gè)語(yǔ)言,定義它的文法的一種表示,并定義一個(gè)解釋器,這個(gè)解釋器使用該表示來解釋語(yǔ)言中的句子.
下面是一個(gè)解釋器模式的demo:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大話設(shè)計(jì)模式
設(shè)計(jì)模式——解釋器模式
解釋器模式(Interpreter Pattern):給定一個(gè)語(yǔ)言,定義它的文法的一種表示,并定義一個(gè)解釋器,這個(gè)解釋器使用該表示來解釋語(yǔ)言中的句子.
"""
#抽象一個(gè)解釋器類
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)
運(yùn)行結(jié)果:

上面類的設(shè)計(jì)如下圖:

當(dāng)有一個(gè)語(yǔ)言需要執(zhí)行,并且可以將該語(yǔ)言的句子表示為抽象語(yǔ)法樹時(shí),可使用解釋器模式
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
在cmd中運(yùn)行.py文件: python的操作步驟
今天小編就為大家分享一篇在cmd中運(yùn)行.py文件: python的操作步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05
詳解使用pymysql在python中對(duì)mysql的增刪改查操作(綜合)
本篇文章主要介紹了使用pymysql在python中對(duì)mysql的增刪改查操作,通過pymysql向數(shù)據(jù)庫(kù)進(jìn)行查刪增改,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01
python3 property裝飾器實(shí)現(xiàn)原理與用法示例
這篇文章主要介紹了python3 property裝飾器實(shí)現(xiàn)原理與用法,結(jié)合實(shí)例形式分析了Python3 property裝飾器功能、原理及實(shí)現(xiàn)方法,需要的朋友可以參考下2019-05-05
讓Django支持Sql Server作后端數(shù)據(jù)庫(kù)的方法
今天小編就為大家分享一篇讓Django支持Sql Server作后端數(shù)據(jù)庫(kù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05

