将Python解析为实例列表

2024-04-27 03:41:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把纯Python代码解析成一些东西,比如某些类的实例列表,这些实例表示原始代码的各个部分。。你知道吗

举个例子:

>>> text = '''
... for x in range(100):
...     print x
... '''
>>> tree = parse(text)
>>> print tree
Tree( ForLoop(x,Range(100), [Stmt(Print(x))]) )
# here ForLoop, Range, Stmt, Print are all custom classes

Tags: 实例代码textintree列表forparse
1条回答
网友
1楼 · 发布于 2024-04-27 03:41:21

ast module有您需要的工具:

>>> import ast
>>> text = '''
for x in range(100):
    print x
'''

>>> m = ast.parse(text)
>>> ast.dump(m)
"Module(body=[For(target=Name(id='x', ctx=Store()), iter=Call(func=Name(id='range', ctx=Load()),
       args=[Num(n=100)], keywords=[], starargs=None, kwargs=None), 
       body=[Print(dest=None, values=[Name(id='x', ctx=Load())], nl=True)], orelse=[])])"

相关问题 更多 >