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

标签 python performance python-2.7 compression readability

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

最佳答案

这里有几种不同的方法。

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;

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

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

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

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

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

关于python - Python 代码可以像 Javascript 一样被压缩吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19626474/

相关文章:

python-2.7 - 对于 python 中给定的值条件,将列名称作为数据框中的列表返回

python - miro如何嵌入vlc

python - Django 1.10 RequestContext 处理器不工作

python - 在 PyQt5 中创建复杂的自定义小部件并将其添加到 QGridlayout

java - 是否有从 native (C) 代码访问 Java 对象字段的首选方法?

python - 如何加速一个热编码器代码

python - 将字符串解释为 Python 中的其他数据类型

sql-server - T-SQL 滚动十二个月每天的性能

python - 添加第二个 x_axis 覆盖标题

python - Django 项目 : production server, 使用 python 3