Каков наилучший способ написания строк документации для лямбда-функций в python? - PullRequest
0 голосов
/ 16 мая 2018

Я обычно комментирую свои функции, используя многострочные строки документации с "" ", как упоминалось в: https://www.python.org/dev/peps/pep-0257/

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

Но как лучше всего комментировать лямбда-функцию? Я колеблюсь между:

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

или:

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

или еще?

1 Ответ

0 голосов
/ 16 мая 2018

tbh, даже присвоение лямбды переменной мне кажется непитонным. если ему нужно имя, определите его как обычную функцию. Разница между лямбда-функцией и обычной функцией заключается в том, что последняя имеет атрибут __name__ и явный оператор возврата.

если вам нужно добавить строку документации в лямбду, сделайте это так:

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

Таким образом, документация фактически доступна интерпретатору в виде строки документации.

Цитирование непосредственно из pep-8

Всегда используйте оператор def вместо оператора присваивания, который связывает лямбда-выражение непосредственно с идентификатором.

Да:

def f(x): return 2*x
нет

№:

f = lambda x: 2*x
...