Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从已编译的CPython中删除文档字符串,但不删除断言_Python_Python 2.7_Python 2.x_Cpython - Fatal编程技术网

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

从已编译的CPython中删除文档字符串,但不删除断言,python,python-2.7,python-2.x,cpython,Python,Python 2.7,Python 2.x,Cpython,我想从Python程序中删除文档字符串,但将断言(和\uuu调试\uuu部分)保留在中。我一直在使用-OO标志生成.pyo文件,但根据这一点,会同时删除断言和文档字符串 我用的是CPython2.7 澄清:我将删除docstring作为一种廉价的模糊处理方法。管理层做出了这个决定,我认为这是否有用超出了这个问题的范围。你不能拥有-O的一半。它删除docstring和断言,这就是它的工作方式。断言通常是可选的,也就是说,您可以在不影响程序行为的情况下删除它们 如果我必须删除文档字符串,并把其他的东

我想从Python程序中删除文档字符串,但将断言(和
\uuu调试\uuu
部分)保留在中。我一直在使用-OO标志生成.pyo文件,但根据这一点,会同时删除断言和文档字符串

我用的是CPython2.7


澄清:我将删除docstring作为一种廉价的模糊处理方法。管理层做出了这个决定,我认为这是否有用超出了这个问题的范围。

你不能拥有
-O
的一半。它删除docstring和断言,这就是它的工作方式。断言通常是可选的,也就是说,您可以在不影响程序行为的情况下删除它们


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

为什么?这似乎是个奇怪的要求,我希望能够做到这一点:我已经解释了为什么我需要删除docstring,而不是问题中的断言。当然,在编译源文件之前,编写脚本从源文件中删除docstring会更容易、更健壮。@PeterGraham:你没有解释为什么要保留断言–这是这是你需求中非常奇怪的部分。在生产构建中不需要断言。在生产构建中保留断言是有充分理由的,尤其是在飞行代码中。见: