是否有类似于Google Closure Compiler的Python等效工具?

3

我想知道是否有一种工具可以扫描您的代码并删除任何不必要的函数。

也许Python编译器在生成.pyc时已经这样做了?如果能在.py级别上做到这一点,那就太好了。


为什么要压缩JS代码?主要(甚至可以说是唯一)原因是为了节省带宽。但是由于相对于JavaScript而言,Python代码在网络上传输的频率较低,因此并不像JavaScript那样存在于大多数流行的网页中。 - user395760
@mac:但这不是Closure编译器的目的。它的优化和缩小只是副作用,而删除未使用的代码只是其中之一,而且可读性的增加被(只有一个例子)变量变成一字母物种所掩盖。 - user395760
@delnan - 我已经在你的第一条评论中理解了你的意思,不用担心! ;) 我只是在暗示可能这个比较只是为了更清晰地表达,并没有暗示清理的目标相同。 :) - mac
这是一个使用案例:假设我编写了一个大型的Python代码库,然后让其他人针对我的库编写一些内容。然后我想能够提供一个“所需全部包含”的文件,通过从库和他们的代码动态生成。这个人可能不一定是有经验的程序员,但他们会理解简单的Python。 - Geoff
@Jeff - 你想做的事情似乎非常不符合Python的风格。你的库应该被组织成这样一种方式,即程序员/用户(无论是否有经验)都能够只导入所需的内容。例如:你编写了一个用于解决谜题的AI,并提供了解决迷宫/空间问题和单词谜题的类。程序员应该能够执行 from puzzleai import spacialfrom puzzleai import wordy - mac
显示剩余2条评论
2个回答

0

没有这样的软件,因为要基于不同的输入理解代码可能执行的所有可能分支将非常困难(如果考虑到元编程,事情会变得更加复杂)。

您可以做的是推断在测试运行期间执行了多少/哪些代码,然后自己评估是否可以安全地删除这样的代码。您要寻找的是某种代码覆盖率实用程序。

在Python中,有两个众所周知的工具是figleafcoverage

编辑:另一种方法可能是使用分析器(可能更具体地说是类似于this one的调用图)来检查所有函数和类是否出现在图形本身中(然后手动检查那些未出现的...)


0

也许你正在寻找PyLint


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接