Хелпикс

Главная

Контакты

Случайная статья





Lambda функции. Создание lambda функции. Вызов lambda функций



Lambda функции

Создание lambda функции

Представьте, что вам нужно написать функцию, которая принимает на вход число и удваивает его. Если вы уже знаете, как создавать функции в Python, используя ключевое слово def, вы, скорее всего, напишете что-то такое:

def doubler(x):
return 2 * x

На самом деле есть еще один способ создавать такие маленькие функции в Python – использовать ключевое слово lambda. Следующая функция полностью эквивалентна созданной в коде выше:

lambda x: 2 * x

Эта функция не имеет имени и поэтому называется анонимной. Так как в Python анонимные функции объявляются ключевым словом lambda, их также часто называют lambda функции.

Давайте обратим внимание на синтаксис таких функций в общем виде:

lambda arguments: expression

Lambda функция принимает на вход любое количество аргументов, разделенных запятыми, но должна состоять из единственного выражения. Это выражение выполняется, и его результат возвращается. Обратите внимание, что ключевое слово return не нужно. К примеру, следующая анонимная функция вычисляет остаток от деления суммы двух чисел на два:

lambda x, y: (x + y) % 2

Если вы хотите добавить условие в анонимную функцию, вам нужно использовать тернарный оператор первая_альтернатива if условие else вторая_альтернатива:

# Yes
lambda x: 'even' if x % 2 == 0 else 'odd'

# No
lambda x:
if x % 2 == 0:
return 'even'
else:
return 'odd'

Обычные условные выражения не будут работать в анонимной функции.

Вызов lambda функций

Хорошо, но как же вызвать такую функцию, если нее нет имени?

Синтаксис Python позволяет нам делать это, помещая функция в круглые скобки и передавая аргументы в скобках после этого:

(lambda x, y: (x + y) % 2)(1, 5)
# The output is 0

Второй вариант – присвоить объект функции переменной:

func = lambda x, y: (x + y) % 2
func(1, 10)
# The output is 1

Однако, присвоение анонимной функции переменно не соответствует официальным правилам стиля кода. Если вам нужно назвать функцию, имеет смысл объявлять ее явно с ключевым словом def.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.