classContext:def__init__(self):
self.input = ""
self.output = ""classAbstractExpression:defInterpret(self, context):passclassExpression(AbstractExpression):defInterpret(self, context):print"terminal interpret"classNonterminalExpression(AbstractExpression):defInterpret(self, context):print"Nonterminal interpret"if __name__ == "__main__":
context = ""
c = []
c = c + [Expression()]
c = c + [NonterminalExpression()]
c = c + [Expression()]
c = c + [Expression()]
for a in c:
a.Interpret(context)
# 输出
terminal interpret
Nonterminal interpret
terminal interpret
terminal interpret