Python解释器模式

解释器模式,给予一段字符串,对其 进行翻译构成语法树并计算结果。

class Interpreter(object):
    def __init__(self, command):
        self.stack = command.split(' ')
        self.dynamic_stack = []

    def calculate(self):
        before_op = ""
        for one in self.stack:
            if one in ['+', '-', '*', '/']:
                before_op = one
            else:
                if before_op:
                    left = self.dynamic_stack.pop()
                    right = one
                    result = eval(str(left) + before_op + right)
                    self.dynamic_stack.append(result)
                    before_op = ""
                else:
                    self.dynamic_stack.append(one)

        print(self.dynamic_stack)


def main():
    Interpreter("1 + 2 + 6").calculate()


if __name__ == '__main__':
    main()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容