При создании функции она привязывается к переменной автоматически.
Другие объекты, такие как строки и целые числа, создаются несколько по-другому – по ходу работы, не присваивая им переменные.
То же самое можно сказать и о функциях, если они создаются с использованием лямбда-функции. Функции, созданные таким образом, известны как анонимные.
Этот подход наиболее часто используется для присвоения простой функции в качестве аргумента другой функции. Синтаксис показан в следующем примере. Он состоит из ключевого слова lambda, за которым следует список аргументов, двоеточие, выражение, которое нужно обработать, и return.

def my_func(f, arg):
return f(arg)

my_func(lambda x: 2*x*x, 5)

Лямбда-функции не такие функциональные, как именованные функции.
Их функциональность ограничивается одним выражением – обычно одной строкой кода.

#named function
def polynomial(x):
return x**2 + 5*x + 4
print(polynomial(-4))

#lambda
print((lambda x: x**2 + 5*x + 4) (-4))

В коде вверху мы создали анонимную функцию на ходу и вызвали ее с помощью аргумента.

Лямбда-функциям можно присваивать переменные и они могут использоваться как обычные функции.

Тем не менее, такой способ довольно редкий. Как правило функция определяется с помощью def.