编写文档字符串 - 指定函数参数和返回值

3 投票
4 回答
3914 浏览
提问于 2025-04-16 08:59

假设我有一个函数,比如:

>>> def foo(a):
        return a+1

我想为这个函数写一个文档字符串。

在文档字符串中,怎么写才能说明这个函数接收一个参数a,并返回a+1呢?

4 个回答

2

关于Python的一些规范(包括这个问题和其他话题),我建议你先看看Python增强提案。

Python PEP 257提到,对于一行的文档字符串,你应该这样来描述你的函数:

def function(a, b):
"""Do X and return a list."""

而不是这样:

def function(a, b):
"""function(a, b) -> list"""

因为后面的例子可以通过其他方式理解。

我只是简单浏览了一下,但PEP中的链接似乎指向其他PEP,这些PEP深入探讨了文档字符串的细节。

总的来说,如果你还没看过PEP,建议你浏览一下,因为里面有一些关于Python设计决策和理念的有趣话题。

3

PEP 257 可能会对你有帮助!

5

文档字符串的目的是给用户一个基本的概述,让他们知道这个功能是干什么的,输入和输出是什么,而不需要告诉他们太多具体的实现细节。在这个例子中:

def foo(a):
    """Take a number a and return its value incremented by 1."""
    return a + 1

对于一个不那么简单的例子,我喜欢在《Dive Into Python》中关于文档化函数的部分里的例子:

def build_connection_string(params):
    """Build a connection string from a dictionary of parameters.

    Return string."""

显然,一个更复杂的函数需要更长的文档字符串。只要确保文档字符串讨论的是发生了什么(输入了什么,返回了什么),而不是具体是怎么实现的(实现细节不应该包含在内)。

撰写回答