有什么理由将代码放在 Python 中的文档字符串之前?

Any reason to put code before the docstring in Python?

我在其他人的 Python 代码中看到他们在函数的文档字符串之前粘贴了一些检查;像这样:

def func(args):
  if x_version != 1.7:
    return
  """docstring is here"""
  # function body code
  # ...

是否存在您应该必须在文档字符串之前放置一些代码以解决任何问题的情况?是否有任何特殊情况必须引入此样式,或者它总是只是一个糟糕的样式,因此必须修复为这样的样式?

def func(args):
  """docstring is here"""
  if x_version != 1.7:
    return
  # function body code
  # ...

Python 仅当它是函数体中的 first 语句时才会选择文档字符串。将代码放在它之前意味着该字符串将被完全忽略:

>>> def func(args):
...   if x_version != 1.7:
...     return
...   """docstring is here"""
...
>>> func.__doc__ is None
True

如果您希望文档字符串真正起作用,您应该永远不要这样做。

来自Python reference documentation

A string literal appearing as the first statement in the function body is transformed into the function’s __doc__ attribute and therefore the function’s docstring.

大胆强调我的。