函数文档

关键字 def 引入一个函数定义。构成函数体的语句从下一行开始,并且必须缩进。

函数体的第一个语句可以是字符串文字(可选的),这个字符串文字即是函数的文档字符串。有些工具使用文档字符串自动生成在线或印刷文档,或者让用户以交互式的形式浏览代码。在你编写的代码中包含文档字符串是一种很好的做法,所以要养成习惯。

文档字符串的内容和格式的约定:

  • 第一行应该是函数目的的简要概述。为简洁起见,它不应显式声明对象的名称或类型,因为这些可通过其他方式获得(除非名称恰好是描述函数操作的动词)。这一行应以大写字母开头,以句点结尾。

  • 如果文档字符串中有更多行,则第二行应为空白,从而在视觉上将摘要与其余描述分开。后面几行应该是一个或多个段落,描述对象的调用约定,它的副作用等。

可以使用函数的 __doc__ 属性或 help() 函数查看函数文档。

help(my_function)
Help on function my_function in module __main__:

my_function()
    Do nothing, but document it.
def my_function():
    'Do nothing, but document it.'
    pass

my_function.__doc__
'Do nothing, but document it.'
# 多行的函数文档
def my_func():
    """Do nothing, but document it.

    No, really, it doesn't do anything.
    """
    pass
print(my_func.__doc__)
Do nothing, but document it.

    No, really, it doesn't do anything.
help(my_func)
Help on function my_func in module __main__:

my_func()
    Do nothing, but document it.
    
    No, really, it doesn't do anything.
print(print.__doc__)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file:  a file-like object (stream); defaults to the current sys.stdout.
sep:   string inserted between values, default a space.
end:   string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.