我无法弄清楚print(__doc__)
在脚本开头做了什么,例如in this Scikit example。
我一直在谷歌中寻找 Python docstrings ,似乎__doc__
对于提供一些文档,例如函数很有用。但我看不出__doc__
在脚本中间做了什么。
答案 0 :(得分:68)
似乎
中提供一些文档很有用__doc__
对于在函数
这是事实。除功能外,还可以在模块中提供文档。所以,如果你有一个名为mymodule.py
的文件:
"""This is the module docstring."""
def f(x):
"""This is the function docstring."""
return 2 * x
您可以像这样访问其文档字符串:
>>> import mymodule
>>> mymodule.__doc__
'This is the module docstring.'
>>> mymodule.f.__doc__
'This is the function docstring.'
现在,回到你的问题:print(__doc__)
做了什么?简单地说:它打印模块docstring。如果未指定docstring,则__doc__
默认为None
。
答案 1 :(得分:15)
以字符串文字开头的任何函数,类或模块都具有非空__doc__
;该初始字符串作为文档字符串;如果没有这样的字符串,它将被设置为None
。请参阅Python词汇表中的docstring term definition。
下载Scikit脚本示例时,您会看到它以这样的字符串开头:
"""
================================
Recognizing hand-written digits
================================
An example showing how the scikit-learn can be used to recognize images of
hand-written digits.
This example is commented in the
:ref:`tutorial section of the user manual <introduction>`.
"""
print(__doc__)
命令只是重复使用该文档字符串,每次运行脚本时都将其写入终端,以及任何其他python工具(例如交互式解释器help()
函数)可以反省同样的价值。