假设我有一个这样的函数:
def myFunc(): # useful function to calculate stuff
这将产生缩进错误,除非我添加pass:
pass
def myFunc(): # useful function to calculate stuff pass
但是,如果我用文档字符串替换注释,则不需要pass:
def myFunc(): """useful function to calculate stuff"""
这似乎是一个奇怪的功能,因为据我所知,这两个功能在程序中都没有使用。那么,为什么会出现这样的行为呢?
文档字符串不仅仅是注释。它实际上对解释器有意义。在有文档字符串的情况下,您可以执行myFunc.__doc__并实际取回文档字符串(在另一种情况下pass,结果myFunc.__doc__将是None)。
myFunc.__doc__
None
换句话说,您实际上是在向函数体中添加一些代码来修改其行为(在某些情况下),因此没有pass必要。