【发布时间】:2012-03-20 11:01:00
【问题描述】:
我见过How can you find unused functions in Python code?,但这真的很老了,并没有真正回答我的问题。
我有一个大型 python 项目,其中包含多个由多个入口点脚本共享的库。这个项目已经积累了很多年,有很多作者,所以有很多死代码。你知道该怎么做。
我知道找到所有死代码是不可判定的。我所需要的只是一个工具,它可以找到所有未在任何地方调用的函数。我们并没有对基于函数名字符串的函数调用做任何花哨的事情,所以我不担心有什么病态的......
我刚刚安装了pylint,但它似乎是基于文件的,并不太关注文件间依赖,甚至函数依赖。
显然,我可以在所有文件中 grep for def,从中获取所有函数名,然后对每个函数名执行 grep。我只是希望已经有比这更聪明的东西了。
ETA:请注意,我并不期望或想要完美的东西。我和任何人一样都知道我的停止问题证明(实际上我没有教过计算理论,我知道当我在看一些递归可枚举的东西时)。任何试图通过实际运行代码来近似它的事情都将花费太长时间。我只想要在语法上通过代码并说“这个函数肯定被使用了。这个函数可能会被使用,这个函数肯定不会被使用,甚至没有其他人知道它的存在!”前两个类别并不重要。
【问题讨论】:
-
已经有一个,已经开了 2.5 年了。我认为主要是因为他们知道在最困难的情况下,这在数学上是不可能的。
-
Grepping 听起来对你来说可能就足够了。或者也许使用
parser会给你更好的控制。
标签: python pylint code-cleanup