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

Pet*_*ham 5 python cpython python-2.x python-2.7

我想从一个Python程序删除文档字符串,但留下断言(和__debug__切片).我一直在使用-OO标志产生.pyo文件,但根据该文件,消除双方断言和文档字符串.

我正在使用CPython 2.7.

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

Ned*_*der 3

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

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