0

我想定义一个像这样的节点:

from astroid import parse
print_node = parse("print()")

print(print_node.body[0].value)

# Call(func=<Name.print l.1 at 0x1abe5f02978>,
#      args=[],
#      keywords=None)

我发现定义它的唯一方法是:

new_print_node = astroid.Call()
new_print_node.postinit(func=print_node.body[0].value.func)

是否可以按照文档NodeNG的建议通过实例化 a 来直接获取函数?我还没有找到如何定义函数printNodeNG

4

1 回答 1

0

Node只是一个Namewith name print

astroid.Name(name="print")

print_node = astroid.Call()
print_node.postinit(
    func=astroid.Name(name="print")
)

这使 :

Call(func=<Name.print l.None at 0x249099ac710>,
     args=[],
     keywords=None)
于 2019-09-23T19:46:18.390 回答