голосование
PHP
jQuery
Firebird
BASH
HTML
Ресурсы
GIT
SEO
Oracle
Python
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Функции callback lambda Python

Существуют в 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
"""
просмотры: 66, уровень: лёгкий уровень, рейтинг: 0, дата: 2017-09-01 13:21:09
проголосовать:

Комментарии:






поиск
реклама
банеры
домен RU всего за 99 рублей
http://www.2domains.ru домен RU домен RU всего за 99 рублей
http://ping-admin.ru/index_5659.html мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
https://my.colobridge.net/aff.php?aff=047 серверы vps/vds облачный vps/vds сервер colobridge от 9,9 евро в месяц