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.
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;
有很多这样的例子,您还可以删除注释,并使用三元运算符进一步混淆简单的代码。;
摆脱了大量的空白,但可以进行许多较小的优化。
请记住,这些都不会将您的代码完全混淆到无法恢复的程度。任何有足够动力的人都可以从这里对您的源代码进行逆向工程,即使没有文档记录。
即使您只分发.pyo
或.pyc
文件,这仍然适用。Python 字节码通常不会比用于生成它的源代码小很多,并且大部分可以很容易地进行逆向工程。不要错误地认为分发 a.pyc
将完全保护您的源代码。
编辑:如果您希望将这些打包为独立的二进制可执行文件,您可能需要查看cx_Freeze。它可能更接近您正在寻找的东西,并且即使不是不可能进行逆向工程也更难。
与通常由浏览器执行的 javascript 不同,我们必须提供原始的 javascript 源代码。
您不必发布 python 代码,您可以发布已编译的二进制文件。有很多工具可以完成这项工作,例如py2exe、Pyinstaller、cx_Freeze。客户也受益,因为他们不需要安装 Python,甚至不需要了解 Python。
虽然编译后的 Python 代码比 java、c、c++ 代码更容易反编译,但比压缩源代码更好。