python为lambda函数编写docstrings的最佳方法是什么?

时间:2018-05-16 12:25:44

标签: python lambda docstring

我通常使用"""来使用多行文档字符串来评论我的函数,如下所述: https://www.python.org/dev/peps/pep-0257/

def func1(x):
  """
  This function does ...
  """
  ...

但是评论lambda函数的最佳方法是什么?我在犹豫之间犹豫不决:

# This function does ...
func2 = lambda x: ...

或:

func2 = lambda x: ...
""" This function does ... """

或者?

1 个答案:

答案 0 :(得分:7)

tbh,即使将一个lambda分配给一个变量,对我来说也似乎是unpythonic。如果需要名称,请将其定义为常规函数。 lambda函数和常规函数之间的区别在于后者具有__name__属性和显式返回语句。

如果必须将文档字符串添加到lambda,请按以下方式执行:

f = lambda x: x + 1
f.__doc__ = """adds 1 to input-arg"""

help(f) 
# outputs the following:
help(f)
Help on function <lambda> in module __main__:

<lambda> lambda x
    adds 1 to arg

这样,解释器实际上可以将文档作为函数docstring使用。

直接从pep-8

报价
  

始终使用def语句而不是将lambda表达式直接绑定到标识符的赋值语句。

     

是:

def f(x): return 2*x
     

没有

f = lambda x: 2*x