5

I am wondering if Python code can be compressed/non-human readable like Javascript can. I know indentions are important in Python, and it's core philosophy is readability, but is there, by any chance, a method that allows compressed Python code? Python 2.7, by the way.

4

3 回答 3

4

您可以在这里采取几种不同的方法。

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;

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

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

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

即使您只分发.pyo.pyc文件,这仍然适用。Python 字节码通常不会比用于生成它的源代码小很多,并且大部分可以很容易地进行逆向工程。不要错误地认为分发 a.pyc将完全保护您的源代码。

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

于 2013-10-28T03:00:09.823 回答
0

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

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

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

于 2013-10-28T03:20:43.080 回答
0

http://doughellmann.com/2009/01/pymotw-compileall.html 删除然后源 .py 文件

于 2013-10-28T03:01:56.567 回答