Functions as Arguments
Урок 3 из 12 курса Декораторы в Python на Coddy.
В Python мы можем передавать функцию в качестве аргумента другой функции.
Например,
def add_numbers(a, b):
return a + b
def multiply_numbers(a, b):
return a * b
def calculate(func, a, b):
return func(a, b)
result = calculate(add_numbers, 2, 3)
print(result) # Результат: 5
result = calculate(multiply_numbers, 2, 3)
print(result) # Результат: 6
В этом примере мы определяем две функции: add_numbers и multiply_numbers.
Затем мы определяем третью функцию под названием calculate, которая принимает функцию func в качестве первого аргумента, а также два дополнительных аргумента a и b.
Когда мы вызываем calculate, мы передаем имя функции, которую хотим использовать (либо add_numbers, либо multiply_numbers), в качестве аргумента func вместе с двумя числами, над которыми мы хотим произвести операцию.
Затем функция calculate вызывает функцию func с этими двумя числами и возвращает результат.
В приведенном выше примере мы вызываем calculate дважды: один раз с add_numbers и один раз с multiply_numbers.
Первый вызов возвращает сумму 2 и 3 (что равно 5), а второй вызов возвращает произведение 2 и 3 (что равно 6).
Задание
ЛегкоНапишите функцию с именем list_operator, которая принимает список целых чисел и функцию-оператор в качестве аргументов.
Функция operator должна принимать два целых числа на вход и возвращать одно целое число в качестве результата.
Функция list_operator должна применять функцию-оператор ко всем парам соседних целых чисел в списке и возвращать новый список с результатами.
Вот пример того, как должна работать функция:
>>> numbers = [1, 2, 3, 4, 5]
>>> result = list_operator(numbers, operator.add)
>>> result
[3, 5, 7, 9]
>>> numbers = [10, 20, 30, 40]
>>> result = list_operator(numbers, operator.mul)
>>> result
[200, 600, 1200]Ограничения
- Входной список всегда будет содержать как минимум два целых числа.
- Функция-оператор всегда будет принимать два целых числа на вход и возвращать одно целое число в качестве результата.
Примечание! Функция-оператор предоставляется нами, вам не нужно её создавать, просто используйте её.
Попробуйте сами
Все уроки раздела Декораторы в Python
Потренируйтесь самостоятельно: Онлайн-компилятор Python