4

我在其他人的 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
  # ...
4

1 回答 1

11

如果它是函数体中的第一条语句, Python 只会选择一个文档字符串。将代码放在它之前意味着该字符串将被完全忽略:

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

如果您希望文档字符串真正发挥作用,则永远不要这样做。

Python 参考文档

作为函数体中第一条语句出现的字符串文字被转换为函数的__doc__属性,因此也被转换为函数的文档字符串。

大胆强调我的。

于 2016-05-06T09:39:36.207 回答