Конструкция lambda
является более коротким способом определения простой функции, которая вычисляет одно выражение.Оператор def
может быть неудобным и сделать код длиннее, разбитым и трудным для чтения.Функции, созданные этими двумя функциями, практически одинаковы в том, как они работают, разница в том, что lambda
ограничивается одним выражением, значение которого возвращается, и что def
назначает имя функции и добавляет его клокальные переменные с тем же именем.Также lambda
может использоваться непосредственно в выражении, в то время как def
является оператором.
def f(x, y):
return x + y
даст вам почти тот же результат, что и
f = lambda x, y: x + y
И вы можете использовать его непосредственно в выражении
g(5, 6, helper=lambda x, y: x + y)
, которое с def
будет менее кратким
def helper_function(x + y):
return x + y
g(5, 6, helper=helper_function)