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

时间:2013-10-28 02:49:27

标签: python performance python-2.7 compression readability

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

3 个答案:

答案 0 :(得分:3)

您可以采取一些不同的方法。

事实上,Python确实以;的形式提供缩小机会。 python中一个鲜为人知且很少使用(谢天谢地)的语法元素是,如果使用;,可以在一行上写入多个表达式。

例如:

 if x > y:
     x += y
     print y
 else:
     y += x
     print x

可以压缩为:

 if x>y:x+=y;print y;
 else:y+=x;print x;

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

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

请记住,这些都不会使您的代码完全混淆到无法恢复的程度。任何有足够动力的人都可以对源代码进行逆向工程,即使没有文档也可以。

即使您只分发.pyo.pyc个文件,也是如此。 Python字节码通常不比用于生成它的源代码小得多,并且在很大程度上可以很容易地进行逆向工程。不要误以为分发.pyc将完全保护您的源代码。

编辑:如果您希望将这些打包为独立的二进制可执行文件,您可能需要查看cx_Freeze。它可能更接近您正在寻找的东西,如果不是不可能进行逆向工程则更难。

答案 1 :(得分:0)

答案 2 :(得分:0)

与通常由浏览器执行的javascript不同,我们必须提供原始的javascript源代码。

您不必提供python代码,您可以提供已编译的二进制文件。有许多工具可以完成这项工作,例如py2exePyinstallercx_Freeze。客户端也受益,因为他们不需要安装Python甚至不需要了解Python。

虽然编译后的Python代码比java,c,c ++代码更易于反编译,但比压缩源代码更好。