【发布时间】:2012-01-27 09:23:48
【问题描述】:
来自 2.7.2 文档,第 6 节,Modules:
Passing two -O flags to the Python interpreter (-OO) will cause the bytecode compiler to perform optimizations that could in some rare cases result in malfunctioning programs. Currently only __doc__ strings are removed from the bytecode, resulting in more compact .pyo files.
这引起了我的注意:
Since some programs may rely on having these available, you should only use this option if you know what you’re doing.
在任何情况下,删除脚本的文档字符串可能会在逻辑上破坏代码功能的某些依赖关系或其他方面,而忽略任何语法错误?
编辑
为什么删除 cmets 会破坏帮助语句?在解释器中似乎没有这样做。
>>> help('import_pi')
Help on module import_pi:
NAME
import_pi
FILE
/home/droogans/py/import_pi.py
FUNCTIONS
print_pi()
DATA
pi = 3.1415926535897931
>>> import import_pi()
>>> import_pi.__doc__
>>>
>>> print import_pi.print_pi.__doc__
Convert a string or number to a floating point number, if possible.
【问题讨论】:
-
从脚本中删除文档字符串的部分除外。还是我误读了这两种情况?
-
哦,我明白你在说什么。是的,不,
-OO将其从字节码中删除。它不会更改您的.py文件,您是正确的。我只是将两者联系起来,因为这是与我的主题相关的少数几个问题之一。我通常会写出导致我提出问题的原因,以及让我到达那里的想法,因为第一条评论几乎总是这样:more info please。
标签: python compiler-optimization removing-whitespace docstring