是否有一个工具可以删除Python中未使用的功能?

我有以下情况:我正在使用我编写的库模块的多个项目中工作。库模块包含几个类和函数。在每个项目中,都使用了库代码的某些子集。

但是,当我为其他用户发布项目时,我只希望放弃该项目使用的代码,而不是整个模块。这意味着对于一个给定的项目,我想从库代码中删除未使用的库函数(即创建一个新的精简库)。有没有可以自动执行此操作的工具?

编辑

一些澄清/答复:

  1. 关于“您通常不应这样做”的答复:最重要的是,实际上,在发布项目之前,我会手动浏览库模块并删除未使用的代码。因为我们都是程序员,所以我们知道当您可以轻松地向计算机解释如何做时,没有理由手动做某事。因此,实际上,编写这样的程序是可能的,甚至应该不太困难(是的,它可能不是超级通用的)。我的问题是,在我开始自己考虑实施该工具之前,是否有人知道这种工具是否存在。此外,欢迎对此实施有任何想法。

  2. 我不想简单地隐藏所有代码。如果我想这样做,我可能不会使用Python。实际上,我只想发布源代码,但是只发布与所讨论项目相关的代码。

  3. 关于“您受到法律保护”评论:在我的特定情况下,法律/许可保护对我没有帮助。同样,这里的问题比一些窃取代码更普遍。例如,可能是为了清楚起见:如果某人需要使用/开发代码,则不希望包含数十个不相关的功能。


繁星coding
浏览 172回答 4
4回答

LEATH

我同意@zmo-避免将来发生此类问题的一种方法是提前计划并使您的代码尽可能模块化。我建议将类和函数放在小得多的文件中。这意味着对于您创建的每个项目,您都必须手动选择要包含的这些较小文件中的哪个。我不确定现在就您的项目规模是否可行。但是对于将来的项目,您可以考虑采用这种做法。

子衿沉夜

如果您的目的是不泄露代码,则只需分发python编译的库,而不是其源代码即可。无需手动除草代码调用,只需分发pyc文件的版本即可。如果您担心别人会接受您的代码而不给您信誉,那么如果有其他选择,也不要给他们代码。也就是说,我们拥有许可证是有原因的。您将最小的标头和属性放在每个文件的顶部,并随软件一起分发LICENSE文件,该文件清楚地表明允许或禁止与源代码进行合作的人员。如果他们违反了该规定,而您抓住了它们,那么您现在拥有法律追索权。如果您不信任别人来坚持该许可证:那是它存在的全部原因。如果您的代码是如此独特,以至于由于担心其他人将其作为自己的代码进行假冒而需要获得许可,那么将很容易发现违规行为。但是,如果您像这样对待所有代码,请进行小小的现实检查:您不是很好。您写的几乎没有什么东西会足够原始,以至于其他人还没有写过,试图坚持下去不会使您或其他任何人受益。最好的代码保护?将其在线粘贴,每个人都可以看到,以便您可以将其他所有人都指向它,然后去“看看?这就是我的代码。这个混蛋正在自己的产品中使用它,而没有给我信誉”。更糟糕的代码保护,但仍然是保护:不要分发代码,分发已编译的库。(最糟糕的代码保护:分发绑定代码,因为您出于错误的原因而担心世界)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python