在 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
只是一个名为 print
的 Name
。
比如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)
我想定义一个这样的节点:
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
只是一个名为 print
的 Name
。
比如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)