Menu
Coddy logo textTech

Functions as Arguments

Coddy'nin Python Dekoratörleri kursunda ders 3 / 12.

Python'da, bir fonksiyonu başka bir fonksiyona argüman olarak geçirebiliriz.

Örneğin,

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) # Çıktı: 5

result = calculate(multiply_numbers, 2, 3)
print(result) # Çıktı: 6

Bu örnekte, iki fonksiyon tanımlıyoruz: add_numbers ve multiply_numbers.

Daha sonra, ilk argüman olarak bir func fonksiyonu ve iki ek argüman olan a ve b'yi alan calculate adında üçüncü bir fonksiyon tanımlıyoruz.

calculate fonksiyonunu çağırdığımızda, kullanmak istediğimiz fonksiyonun adını (add_numbers veya multiply_numbers) func argümanı olarak, işlem yapmak istediğimiz iki sayı ile birlikte geçiririz.

calculate fonksiyonu daha sonra func fonksiyonunu iki sayı ile çağırır ve sonucu döndürür.

Yukarıdaki örnekte, calculate fonksiyonunu iki kez çağırıyoruz: bir kez add_numbers ile ve bir kez multiply_numbers ile.

İlk çağrı 2 ve 3'ün toplamını (yani 5) döndürür ve ikinci çağrı 2 ve 3'ün çarpımını (yani 6) döndürür.

challenge icon

Görev

Kolay

Bir tam sayı listesi ve bir operatör fonksiyonunu argüman olarak alan list_operator adında bir fonksiyon yazın.

operator fonksiyonu, girdi olarak iki tam sayı almalı ve çıktı olarak tek bir tam sayı döndürmelidir.

list_operator fonksiyonu, operatör fonksiyonunu listedeki tüm bitişik tam sayı çiftlerine uygulamalı ve sonuçları içeren yeni bir liste döndürmelidir.

İşte fonksiyonun nasıl çalışması gerektiğine dair bir örnek:

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

Kısıtlamalar

  • Girdi listesi her zaman en az iki tam sayı içerecektir.
  • Operatör fonksiyonu her zaman girdi olarak iki tam sayı alacak ve çıktı olarak tek bir tam sayı döndürecektir.

Not! Operatör fonksiyonu tarafımızca verilmiştir, onu oluşturmanıza gerek yoktur, sadece kullanın.

Kendin dene

Python Dekoratörleri bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi