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)
運行結(jié)果:
上面類的設計如下圖:
當有一個語言需要執(zhí)行,并且可以將該語言的句子表示為抽象語法樹時,可使用解釋器模式
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設計有所幫助。
相關(guān)文章
Python?PaddleGAN實現(xiàn)照片人物性別反轉(zhuǎn)
PaddleGAN中的styleganv2editing.py是支持性別編輯的。所以本文將介紹如何通過調(diào)整參數(shù),來試著實現(xiàn)一下照片的性別翻轉(zhuǎn)。感興趣的小伙伴可以學習一下2021-12-12Django數(shù)據(jù)結(jié)果集序列化并展示實現(xiàn)過程
這篇文章主要介紹了Django數(shù)據(jù)結(jié)果集序列化并展示實現(xiàn)過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-04-04conda換源安裝torch+vscode分布式訓練調(diào)試的實現(xiàn)
本文主要介紹了conda換源安裝torch+vscode分布式訓練調(diào)試的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-06-06