【问题标题】:Adding docstring under my function seems to alter my result在我的函数下添加 docstring 似乎改变了我的结果
【发布时间】:2021-11-24 12:33:24
【问题描述】:

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

删除文档字符串,我的功能再次起作用。为什么会这样?

【问题讨论】:

  • 欢迎堆栈溢出,请将您的代码分享为文本,而不是图像meta.stackoverflow.com/questions/285551/…
  • 如果它是函数中的第一件事,它只是一个文档字符串。它们在其他任何地方都不起作用——如果您想在代码中标注任意位置,请改用注释。
  • 另外,笔记本单元格不是函数。

标签: python jupyter-notebook docstring


【解决方案1】:

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

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

在官方语言中,文档字符串仅用于在对象上设置__doc__ 属性的函数、类和方法中。解释器不会拾取常规 cmets,但字符串会。 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 2015-10-17
    • 2023-01-27
    相关资源
    最近更新 更多