Использование функции для замены присваивания по условию

Рассмотрим набор похожих условий.

if a < b:
  b = a

if b > a:
  b = a

При наличии функций min и max, которые возвращают минимальный и максимальный элемент из переданных в функцию, данные конструкции можно упростить следующим образом.

b = min(a, b)
# if a < b:
#  b = a

b = max(a, b)
# if b > a:
#  b = a

Функции подобные min и max, обычно, есть в стандартной библиотеке, поэтому такой подход применим во многих языках программирования.

При таком подходе сокращение кода это побочный, а не основной эффект. Важнее повышение читаемости кода. В двух случаях вычисляется минимум или максимум из двух переменных и это значение присваивается одной из переменных, но в одном случае используется условный оператор, а в другом специальная функция. Эти варианты можно сравнить со следующими текстовыми описаниями:

  • Если в переменная a больше, чем переменная b, то присвоить переменной a значение из переменной b, иначе оставить переменную a без изменений;
  • Присвоить переменной a минимум из чисел в переменных a и b.

Ссылки на эту заметку

Эта заметка на GitHub

Обсудить на форуме

Последниее изменение: