小能豆

为什么 Python 文档字符串的解释与注释不同

py

假设我有一个这样的函数:

def myFunc():
    # useful function to calculate stuff

这将产生缩进错误,除非我添加pass

def myFunc():
    # useful function to calculate stuff
    pass

但是,如果我用文档字符串替换注释,则不需要pass

def myFunc():
    """useful function to calculate stuff"""

这似乎是一个奇怪的功能,因为据我所知,这两个功能在程序中都没有使用。那么,为什么会出现这样的行为呢?


阅读 46

收藏
2024-11-22

共1个答案

小能豆

文档字符串不仅仅是注释。它实际上对解释器有意义。在有文档字符串的情况下,您可以执行myFunc.__doc__并实际取回文档字符串(在另一种情况下pass,结果myFunc.__doc__将是None)。

换句话说,您实际上是在向函数体中添加一些代码来修改其行为(在某些情况下),因此没有pass必要。

2024-11-22