给定一个ast
可以自行计算的节点,但字面意义不够ast.literal_eval
例如列表理解
src = '[i**2 for i in range(10)]'
a = ast.parse(src)
Now a.body[0]
is an ast.Expr
and a.body[0].value
an ast.ListComp
。我想获得以下列表eval(src)
会产生结果,但仅给出ast.Expr
node.
也许您正在寻找compile() http://docs.python.org/library/functions.html#compile?调用的结果compile()
AST 对象上是一个可以传递给的代码对象eval()
.
>>> src = '[i**2 for i in range(10)]'
>>> b = ast.parse(src, mode='eval')
>>> eval(compile(b, '', 'eval'))
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)