在我的函数下添加文档字符串似乎改变了我的结果
Adding docstring under my function seems to alter my result
我在我的函数下添加了一个文档字符串,只是为了看看会发生什么。当我 运行 它时,它 returns 文档字符串而不是我的函数结果。我以为docstring就像不会影响我结果的注释。
删除文档字符串,我的函数再次运行。为什么会这样?
您应该为此使用普通注释 #
,而不是文档字符串 """
。
某些工具(如 PyCharm 或 Sphinx 库)变量的文档字符串将得到尊重,但这实际上并未内置到 Python 中。可以想象,未来的Jupyter Notebooks会允许这样做,但目前还不允许,所以你应该避免使用它们。
在官方语言中,文档字符串仅用于函数、类 和设置对象 __doc__
属性的方法。解释器不会获取常规注释,但字符串会。 docstring 只是一个普通的字符串,但根据它的使用位置,它的解析方式不同。在函数、类 和方法中,它们必须是块中的第一条语句。
例如,在这些函数中,foo
和 bar
都有正确的文档字符串,但 fizz
没有:
def foo():
"foo"
def bar():
"""bar"""
def fizz():
# fizz
pass
print(foo.__doc__)
print(bar.__doc__)
print(fizz.__doc__)
foo
bar
None
我在我的函数下添加了一个文档字符串,只是为了看看会发生什么。当我 运行 它时,它 returns 文档字符串而不是我的函数结果。我以为docstring就像不会影响我结果的注释。
删除文档字符串,我的函数再次运行。为什么会这样?
您应该为此使用普通注释 #
,而不是文档字符串 """
。
某些工具(如 PyCharm 或 Sphinx 库)变量的文档字符串将得到尊重,但这实际上并未内置到 Python 中。可以想象,未来的Jupyter Notebooks会允许这样做,但目前还不允许,所以你应该避免使用它们。
在官方语言中,文档字符串仅用于函数、类 和设置对象 __doc__
属性的方法。解释器不会获取常规注释,但字符串会。 docstring 只是一个普通的字符串,但根据它的使用位置,它的解析方式不同。在函数、类 和方法中,它们必须是块中的第一条语句。
例如,在这些函数中,foo
和 bar
都有正确的文档字符串,但 fizz
没有:
def foo():
"foo"
def bar():
"""bar"""
def fizz():
# fizz
pass
print(foo.__doc__)
print(bar.__doc__)
print(fizz.__doc__)
foo
bar
None