Анонимные функции
Анонимные функции или лямбда-выражения – не являются ноу-хау Python, такие конструкции характерны для функциональных языков, таких как Haskell или Lisp. Появились они, благодаря деятельности двух математиков Алонзо Черча и Алана Тьюринга.
Python не является функциональным языком программирования, но некоторые элементы функциональных языков встроены в него.
Давайте разберемся, что же такое лямбда-выражения и как с ними работать. Как можно заметить из названия “анонимная функция”, лямбда-выражение в буквальном смысле является функцией, у которой отсутствует имя:
def simple_sqr(x):
return x*x
lambda_sqr = lambda x: x*x
print(lambda_sqr(5)) #25
print(simple_sqr(6)) #36
В данном примере мы написали обычную именованную, def-функцию и лямбда-выражение, которые возводит число в квадрат. Вы можете справедливо возразить, сказав, что не видите здесь ни одной анонимной функции, есть simple_sqr и lambda_sqr, к которой присваивается странная конструкция. Этот пример является несколько надуманным, если записать это выражение в PyCharm, то услужливая среда разработки заметит: “PEP 8: do not assign a lambda expression, use a def”, что в прямом смысле означает, что не надо мудрить с лямбда-выражениями, используйте обычную именованную def-функцию. Однако на данном примере легко проследить логику анонимных функций их синтаксис:
Ключевое слово: lambda
Аргумент (то, что мы передаем в функцию): x
Тело функции (действие над аргументом): x*x
Собственно, по такому принципу строятся все анонимные функции, аргументов может быть несколько, в тело функции можно нельзя писать операторы по типу return. Но логические выражения в анонимных функциях все же используются, например можно написать лямбда-выражения для определения четности/нечетности числа...
Полный текст статьи читайте на сайте: https://aisimple.ru/14-python-function-part2.html