我想定义一个这样的节点:
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所建议的NodeNG
来直接获取函数?我尚未找到如何从NodeNG
来定义print
函数
答案 0 :(得分:0)
此Node
只是名称为print
的{{3}}。
例如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)