【发布时间】:2018-12-26 17:35:47
【问题描述】:
我正在开发一种工具,该工具需要将内容写入 Python 文件中函数/方法的开头。我正在使用 Python 的 inspect 从文件中获取函数。鉴于这些对象,我使用inspect.getsourcelines(function_obj) 来获取函数的内容。从那里开始,我的解决方案是解析函数头,然后编写必要的内容。我的正则表达式是:
re.compile('def \w*\((\w|\s|,|=|\r|\*|\n|^\))*\):')
这感觉很脆弱,我敢肯定它缺少边缘情况。有没有更优雅/更强大的东西?这对于ast 模块来说是一个很好的用例吗
【问题讨论】:
-
是的,这将是对 ast 模块的极好使用。
-
好吧,太好了,我再试一次。感谢@MartijnPieters 的指导
-
@MartijnPieters 你说的非常对。比使用检查模块更容易。
标签: python abstract-syntax-tree inspect