Menu
CoddyTech

Fungsi sebagai Argumen

Pelajaran 3 dari 12 dalam kursus Dekorator Python di Coddy.

Di Python, kita dapat meneruskan fungsi sebagai argumen ke fungsi lain.

Contohnya,

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

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

Dalam contoh ini, kita mendefinisikan dua fungsi: add_numbers dan multiply_numbers.

Kemudian, kita mendefinisikan fungsi ketiga bernama calculate, yang menerima sebuah fungsi func sebagai argumen pertamanya, bersama dengan dua argumen tambahan, a dan b.

Saat kita memanggil calculate, kita meneruskan nama fungsi yang ingin kita gunakan (add_numbers atau multiply_numbers) sebagai argumen func, bersama dengan dua angka yang ingin kita operasikan.

Fungsi calculate kemudian memanggil fungsi func dengan dua angka tersebut dan mengembalikan hasilnya.

Dalam contoh di atas, kita memanggil calculate dua kali: sekali dengan add_numbers dan sekali dengan multiply_numbers.

Pemanggilan pertama mengembalikan jumlah 2 dan 3 (yaitu 5), sedangkan pemanggilan kedua mengembalikan hasil perkalian 2 dan 3 (yaitu 6).

challenge icon

Tantangan

Mudah

Tulis fungsi bernama list_operator yang menerima list berisi bilangan bulat dan fungsi operator sebagai argumen.

Fungsi operator harus menerima dua bilangan bulat sebagai input dan mengembalikan satu bilangan bulat sebagai output.

Fungsi list_operator harus menerapkan fungsi operator pada semua pasangan bilangan bulat yang berurutan dalam list, lalu mengembalikan list baru yang berisi hasilnya.

Berikut contoh cara kerja fungsi tersebut:

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

Batasan

  • List input akan selalu berisi setidaknya dua bilangan bulat.
  • Fungsi operator akan selalu menerima dua bilangan bulat sebagai input dan mengembalikan satu bilangan bulat sebagai output.

Catatan! Fungsi operator disediakan oleh kami, kamu tidak perlu membuatnya, cukup gunakan fungsi tersebut.

Coba sendiri

Semua pelajaran di Dekorator Python

Latihan sendiri: Compiler Python online