擅长:python、mysql、java
<p>如果您不想为自己的表达式语言编写解析器,那么可以尝试使用Python语法。不要使用编译器模块;而是使用某种抽象语法。从2.5开始,您可以使用-ast模块:</p>
<pre><code>py> import _ast
py> tree = compile("e1,e2=0.58,0.62", "<string>", "exec", _ast.PyCF_ONLY_AST)
py> tree
<_ast.Module object at 0xb7cd5fac>
py> tree.body[0]
<_ast.Assign object at 0xb7cd5fcc>
py> tree.body[0].targets[0]
<_ast.Tuple object at 0xb7cd5fec>
py> tree.body[0].targets[0].elts
[<_ast.Name object at 0xb7cd5e4c>, <_ast.Name object at 0xb7cd5f6c>]
py> tree.body[0].targets[0].elts[0].id
'e1'
py> tree.body[0].targets[0].elts[1].id
'e2'
</code></pre>
<p>在早期版本中,必须使用解析器.suite,这为您提供了一个更难处理的具体语法树。在</p>