Menu
Coddy logo textTech

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).

challenge icon

Задание

Легко

Напишите функцию с именем 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