在我的函数下添加文档字符串似乎改变了我的结果

Adding docstring under my function seems to alter my result

我在我的函数下添加了一个文档字符串,只是为了看看会发生什么。当我 运行 它时,它 returns 文档字符串而不是我的函数结果。我以为docstring就像不会影响我结果的注释。

删除文档字符串,我的函数再次运行。为什么会这样?

您应该为此使用普通注释 #,而不是文档字符串 """

某些工具(如 PyCharm 或 Sphinx 库)变量的文档字符串将得到尊重,但这实际上并未内置到 Python 中。可以想象,未来的Jupyter Notebooks会允许这样做,但目前还不允许,所以你应该避免使用它们。

在官方语言中,文档字符串仅用于函数、类 和设置对象 __doc__ 属性的方法。解释器不会获取常规注释,但字符串会。 docstring 只是一个普通的字符串,但根据它的使用位置,它的解析方式不同。在函数、类 和方法中,它们必须是块中的第一条语句。

例如,在这些函数中,foobar 都有正确的文档字符串,但 fizz 没有:

def foo():
    "foo"


def bar():
    """bar"""


def fizz():
    # fizz
    pass


print(foo.__doc__)
print(bar.__doc__)
print(fizz.__doc__)
foo
bar
None