Menu
Coddy logo textTech

Funkcje jako argumenty

Lekcja 3 z 12 w kursie Dekoratory w Pythonie w Coddy.

W Pythonie możemy przekazać funkcję jako argument do innej funkcji.

Na przykład,

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) # Wynik: 5

result = calculate(multiply_numbers, 2, 3)
print(result) # Wynik: 6

W tym przykładzie definiujemy dwie funkcje: add_numbers i multiply_numbers.

Następnie definiujemy trzecią funkcję o nazwie calculate, która przyjmuje funkcję func jako pierwszy argument, a także dwa dodatkowe argumenty: a i b.

Wywołując calculate, przekazujemy nazwę funkcji, której chcemy użyć (albo add_numbers, albo multiply_numbers), jako argument func, wraz z dwiema liczbami, na których chcemy wykonać działanie.

Funkcja calculate wywołuje następnie funkcję func z tymi dwiema liczbami i zwraca wynik.

W powyższym przykładzie wywołujemy calculate dwa razy: raz z add_numbers i raz z multiply_numbers.

Pierwsze wywołanie zwraca sumę 2 i 3 (czyli 5), a drugie wywołanie zwraca iloczyn 2 i 3 (czyli 6).

challenge icon

Wyzwanie

Łatwy

Napisz funkcję o nazwie list_operator, która przyjmuje jako argumenty listę liczb całkowitych i funkcję operatora.

Funkcja operator powinna przyjmować jako dane wejściowe dwie liczby całkowite i zwracać jako wynik jedną liczbę całkowitą.

Funkcja list_operator powinna zastosować funkcję operatora do wszystkich par sąsiadujących liczb całkowitych na liście i zwrócić nową listę z wynikami.

Oto przykład działania tej funkcji:

>>> 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]

Ograniczenia

  • Lista wejściowa będzie zawsze zawierać co najmniej dwie liczby całkowite.
  • Funkcja operatora będzie zawsze przyjmować jako dane wejściowe dwie liczby całkowite i zwracać jako wynik jedną liczbę całkowitą.

Uwaga! Funkcja operatora jest dostarczona przez nas, nie musisz jej tworzyć, wystarczy jej użyć.

Spróbuj swoich sił

Wszystkie lekcje w sekcji Dekoratory w Pythonie

Poćwicz samodzielnie: Kompilator Python online