首页 > 解决方案 > LibCST:将任意节点转换为代码

问题描述

是否可以将任意 LibCST 节点转储到 Python 代码中?我的用例是我想提取与特定命名方案匹配的函数的代码。我可以提取FunctionDef我需要的节点,但我似乎没有找到将它们转换为代码的方法。

标签: pythonabstract-syntax-treelibcst

解决方案


可以使用类中的code_for_node方法Module

您可以按如下方式使用它:

import libcst

function_def = libcst.parse_statement("def hello_world():\n  print('Hello World')")
print(libcst.Module([]).code_for_node(function_def))

这将产生输出:

def hello_world():
    print('Hello World')


推荐阅读