首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python中获得算术运算的解析树?

如何在Python中获得算术运算的解析树?
EN

Stack Overflow用户
提问于 2018-12-03 03:49:39
回答 1查看 204关注 0票数 1

如何获得以下简单算术运算的函数调用列表?怎样才能得到解析树呢?

代码语言:javascript
运行
复制
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> (2+3)*5 % 7
4

另外,Python source code中解析算术表达式的语法在哪里?

EN

回答 1

Stack Overflow用户

发布于 2018-12-03 03:57:32

您可以使用ast模块来获取抽象语法树。astpretty module让它看起来更美观:

代码语言:javascript
运行
复制
>>> astpretty.pprint(ast.parse('(2+3)*5 % 7'))
Module(
    body=[
        Expr(
            lineno=1,
            col_offset=0,
            value=BinOp(
                lineno=1,
                col_offset=8,
                left=BinOp(
                    lineno=1,
                    col_offset=0,
                    left=BinOp(
                        lineno=1,
                        col_offset=1,
                        left=Num(lineno=1, col_offset=1, n=2),
                        op=Add(),
                        right=Num(lineno=1, col_offset=3, n=3),
                    ),
                    op=Mult(),
                    right=Num(lineno=1, col_offset=6, n=5),
                ),
                op=Mod(),
                right=Num(lineno=1, col_offset=10, n=7),
            ),
        ),
    ],
)

2.7中的完整语法是here

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53583991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档