training-web.ruГлавнаяКатегорииО насКарта сайтаПоискТёмная тема

Категории

Функции callback lambda Python

Создано: 01 сентября 2017Автор: Егор Астапов3076 просмотровСложность: легкий

Существуют в python анонимные функции callback, lambda. Вы можете их использовать прямо внутри других функций. Они всегда возвращают результат. Они должны принимать данные для своих параметров. Посмотрите на пример. Тут callback - функции.


#!/usr/bin/python3
def function1(x) : return x ** 2
def function2(x) : return x ** 3
def function3(x) : return x ** 4

callback = [function1(2),function2(2),function3(2)]
print(list(callback))
"""
вывод:
[4, 8, 16]
"""

Функции lambda используют для различных задач: генерации списков, генерации множеств. Их используют для уменьшения объёма кода. С ними не просто работать, но оно того стоит.


#!/usr/bin/python3
# тут массив из 3 функций
callback = [lambda x : x ** 2, lambda x : x ** 3, lambda x : x ** 4]
# вывод в цикле
for function in callback : print('Result', function(3))
"""
вывод:
Result 9
Result 27
Result 81
"""

Функции lambda могут содержать массу параметров. В наше примере 3 параметра x, y, z.


#!/usr/bin/python3
getLambda = lambda x, y, z: x + y + z
print(getLambda(1,2,3))	
print(getLambda(4,5,6))
"""
вывод:
6
15
"""

Посмотрите на пример ниже. Тут написана функция square. Она достаточно проста. Затем я просто переписал функцию, используя lambda-функцию. Обратите внимание на количество кода и отсутствия слова return.


#!/usr/bin/python3
def square(x):
    return x**2

print(square(2))

square = lambda x : x ** 2
print(square(2))

"""
вывод:
4
4
"""

Комментарии

реклама