如何获得以下简单算术运算的函数调用列表?怎样才能得到解析树呢?
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中解析算术表达式的语法在哪里?
发布于 2018-12-03 03:57:32
您可以使用ast
模块来获取抽象语法树。astpretty
module让它看起来更美观:
>>> 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。
https://stackoverflow.com/questions/53583991
复制相似问题