python - LibCST:将任意节点转换为代码
问题描述
是否可以将任意 LibCST 节点转储到 Python 代码中?我的用例是我想提取与特定命名方案匹配的函数的代码。我可以提取FunctionDef
我需要的节点,但我似乎没有找到将它们转换为代码的方法。
解决方案
可以使用类中的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')
推荐阅读
- ruby-on-rails - 在 Rails 中使用局部变量(添加占位符)时出现问题?
- c# - 查找数组中的异常值?
- python - cross_validate 和样本数
- java - 错误:javaweb java.lang.NoClassDefFoundError:org/apache/commons/fileupload/FileItemFactory
- css - 单击时的 CSS 按钮
- sql - 如何在 Redshift ORDER BY 子句中首先按特定值排序?
- python - python - 我在哪里可以查找 types.FunctionType 的参数?
- google-apps-script - 未能在 Google 表格条件格式中创建 3 个单独的色阶范围
- openscad - 关闭 scad 对象顶部和底部的孔
- scala - 具有 Stream 类型的 Scala 递归实现