Сложная логика в lambda
Анти-паттерн
lambda-функции хороши для краткого описания простых операций или выражений, а использование их для сложной логики, объемного, многострочного кода с ветвлениями, циклами или вложенными вызовами снижает читаемость кода.
Пример¶
Плохо:
do_something = lambda num: num**2 + 2*num - 1 if num > 0 else num**2 - 2*num + 1
Хорошо:
def do_something(num):
if num > 0:
return num**2 + 2*num - 1
else:
return num**2 - 2*num + 1
Хорошо:
def do_something(num):
return num**2 + 2*num - 1 if num > 0 else num**2 - 2*num + 1