如何从Python中的一串代码中获取已定义/更新的变量的id及其值?

问题描述 投票:0回答:1

我正在开发一个项目,我想在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
)类的实例。但考虑到代码的复杂性,我如何准确地知道什么值被分配给什么?另外,如何处理有循环的代码字符串?

python parsing abstract-syntax-tree
1个回答
-2
投票

您是寻求专家指导的学生还是渴望分享知识的老师?您来对地方了! 通过注册或登录来释放我们平台的全部潜力。 快乐的学习和教学! 登录 tutevee.com

© www.soinside.com 2019 - 2024. All rights reserved.