比方说,我有这样一个函数:
def myFunc():
# useful function to calculate stuff
这会产生缩进错误,除非我添加pass
:
def myFunc():
# useful function to calculate stuff
pass
但是,如果我用文档字符串替换注释,则不需要 pass
:
def myFunc():
"""useful function to calculate stuff"""
这似乎是一个奇怪的功能,因为据我所知,程序中都没有使用这些功能。那么,为什么它会这样呢?
最佳答案
解释器会完全忽略注释,因此在缩进后省略 block 是语法错误。然而,文档字符串是一个真正的 Python 对象——最基本的是一个文字 str
。一个单独的表达式是一个有效的代码块:
'This is a string. It is a valid (though pretty useless) line of Python code.'
特别是在文档字符串的情况下,还有一些额外的功能正在进行,例如用于设置 __doc__
属性。
>>> def myFunc():
... '''MyDocString'''
...
>>> print(myFunc.__doc__)
MyDocString
请注意,这也适用于类:
>>> class MyClass(object):
... '''MyClassDocString'''
...
>>> print(MyClass.__doc__)
MyClassDocString
关于python - 为什么 python 文档字符串的解释与注释不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21245572/