从已编译的CPython中删除doc字符串但不断言

时间:2012-07-15 23:35:07

标签: python python-2.7 python-2.x cpython

我想从Python程序中删除doc字符串,但保留asserts(和__debug__部分)。我一直在使用-OO标志生成.pyo文件但是根据the documentation删除断言和doc字符串。

我正在使用CPython 2.7。

澄清:我正在删除文档字符串作为一种廉价的混淆方法。管理层做出了这个决定,我认为这是否有用是超出了这个问题的范围。

1 个答案:

答案 0 :(得分:3)

你不能拥有-O的一半。它删除了文档字符串和断言,这就是它的工作方式。断言通常被编写为可选的,也就是说,您可以删除它们而不会影响程序的行为。

如果我必须删除文档字符串并将所有其他内容单独删除,我会考虑编写一个打开.pyc文件的工具,解组内容,修改它们(通过删除文档字符串),并将它们重新打包为.pyc文件。但如果它甚至可以这样做的话,这可能是一个微妙而脆弱的工具。