在 astroid 中定义一个 `Call` 节点

Define a `Call` node in `astroid`

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

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)

是否可以按照 documentation ? I have not found how to define the print function from NodeNG

的建议,通过实例化 NodeNG 来直接获取函数

这个 Node 只是一个名为 printName

比如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)