Python 代码可以像 Javascript 一样被压缩吗?

Jac*_*ton 5 python compression performance readability python-2.7

我想知道 Python 代码是否可以像 Javascript 一样被压缩/非人类可读。我知道缩进在Python中很重要,它的核心理念是可读性,但是有没有一种方法可以允许压缩Python代码呢?顺便说一句,Python 2.7。

ree*_*eem 4

您可以在此处采取几种不同的方法。

事实上,Python 确实以;. python 中一个鲜为人知且很少使用(值得庆幸的是)的语法元素是,如果;使用的话,可以在一行上编写多个表达式。

例如:

 if x > y:
     x += y
     print y
 else:
     y += x
     print x
Run Code Online (Sandbox Code Playgroud)

可以压缩为:

 if x>y:x+=y;print y;
 else:y+=x;print x;
Run Code Online (Sandbox Code Playgroud)

有大量这样的示例,您还可以删除注释,并使用三元运算符进一步混淆简单的代码。消除;了大量的空白,但可以进行许多较小的优化。

有关为您执行此操作的库的一些示例,请参阅此处此处此处

请记住,这些都不会完全混淆您的代码到无法恢复的程度。任何有足够积极性的人都可以由此对您的源代码进行逆向工程,即使没有记录。

即使您只分发.pyo.pyc归档,这仍然是正确的。Python 字节码通常不会比用于生成它的源代码小很多,并且大多数情况下都可以轻松进行逆向工程。不要错误地认为分发.pyc将完全保护您的源代码。

编辑:如果您希望将它们打包为独立的二进制可执行文件,您可能需要看看cx_Freeze。它可能更接近您正在寻找的东西,并且即使不是不可能进行逆向工程也会更加困难。