Cub*_*bli 2 python docstring python-3.x
就在最近,我遇到了一个非常奇怪的问题,我发现没有决心.例如,如果我在解释器中运行以下代码
>>> def test():
... 'docstring'
... ...
...
>>> print(test.__doc__)
Run Code Online (Sandbox Code Playgroud)
我得到了'docstring',这并不奇怪.现在如果我在*.py文件中运行它,我会得到None.
我尝试了多个具有相同结果的文件; 但为什么解释器返回文档字符串而不是任何文件?任何帮助肯定会受到赞赏.
注意:我已经尝试过三重引号,双重和单引号,以及我可以集合的任何其他变体,没有运气.
已解决:不确定具体如何,但我使用的命令在该shell实例中被"破坏"了.现在工作正常
如果您使用-OO开关运行解释器,则会剥离文档字符串:
-OO除了-O优化之外,还要放弃文档字符串.
这也可以由PYTHONOPTIMIZE环境变量控制:
PYTHONOPTIMIZE如果将其设置为非空字符串,则等同于指定
-O选项.如果设置为整数,则相当于-O多次指定.
因此,如果您有一个指定的Python包装器-OO,或者PYTHONOPTIMIZE设置为说明,那么您可以获得此效果2.
但是,此设置也应适用于交互式解释器:
% PYTHONOPTIMIZE=2 python3
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> def foo():
... 'bar'
...
>>> foo.__doc__
>>>
Run Code Online (Sandbox Code Playgroud)
您可以通过sys.flags以下方式在运行时测试优化设置:
% PYTHONOPTIMIZE=2 python3
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.flags.optimize
2
Run Code Online (Sandbox Code Playgroud)
如果此数字大于或等于2,那么这就是您的文档字符串消失的原因.
| 归档时间: |
|
| 查看次数: |
919 次 |
| 最近记录: |