gpt4 book ai didi

python - 如何从 Python 的 AST 中获取变量的类型?

转载 作者:行者123 更新时间:2023-11-28 22:03:45 33 4
gpt4 key购买 nike

假设我想从我从一些源代码生成的 AST 树中获取所有变量的类型——我该怎么做呢?例如,假设在我的源代码中有类似 i = 5 的内容。我如何从抽象语法树中确定 i 的类型是整数?

我尝试了 type() 函数;但是,它在这种情况下不起作用。

最佳答案

正如其他帖子中所解释的,如果不对语法树进行大量分析,就没有简单的方法来实现这一点,python ast 模块没有提供任何工具。

您仍然可以使用 logilab 的 astng 1 ,它是 pylint 的基础 2并提供静态推理能力。

这是一个简单的例子:

from logilab.astng.builder import ASTNGBuilder
builder = ASTNGBuilder()
astng = builder.string_build('i = 1', __name__, '<string>')
assnode = astng['']
print [(inf.value, type(inf.value)) for inf in assnode.infer()]

当然,您必须挖掘 api 以获得更多现实生活中的用法。您仍然可以写信给 python-projects@lists.logilab.org 寻求帮助。

关于python - 如何从 Python 的 AST 中获取变量的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8425371/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com