我正在开发一个项目,我想在Python中逐行解析每一行代码(以字符串的形式出现)。我想要声明/更新的标识符的 id 及其分配的值。 考虑这里的一串代码:
a = 1
a, b = 2, 0
lst = [2, 3, b]
lst[1] = 9
解析每一行后我期待这样的结果:
{a:1}
{a:2, b:0}
{lst:[2, 3, 0]}
{(lst, 1):9}
我尝试使用 python 的
ast
模块解析给定的代码字符串。结果我得到了一个抽象语法树。因为我想要变量及其值,所以我认为我需要 ast.Name
和 ast.Constant
节点。因此,我尝试迭代 ast.walk
中的节点并检查它们是否是这些(ast.Name
和 ast.Constant
)类的实例。但考虑到代码的复杂性,我如何准确地知道什么值被分配给什么?另外,如何处理有循环的代码字符串?
您是寻求专家指导的学生还是渴望分享知识的老师?您来对地方了! 通过注册或登录来释放我们平台的全部潜力。 快乐的学习和教学! 登录 tutevee.com