Fungsi dalam Fungsi di Python
Di Python, di dalam satu fungsi Anda dapat mendeklarasikan
fungsi lainnya. Misalkan kita memiliki fungsi luar
outer, di dalamnya terdapat
fungsi inner:
def outer():
def inner():
pass
Contoh di atas terlihat cukup
sederhana. Namun, sering kali ada situasi di mana
di dalam tubuh fungsi outer, selain
inner, operasi lain juga
dijalankan. Untuk menyederhanakan kode, kita bisa
mengeluarkan inner ke blok kode
luar, namun fungsi ini akan digunakan
hanya sekali dan hanya di dalam fungsi
outer. Oleh karena itu, tidak ada gunanya
mengeluarkannya ke luar.
Mari kita lihat contoh di mana sebuah
list diteruskan ke fungsi outer.
Dan dengan menggunakan fungsi
inner, elemen numerik
dari list akan dipangkatkan kuadrat.
Untuk melakukan ini, setelah fungsi inner
kita deklarasikan list kosong res, di
mana elemen-elemen yang telah dipangkatkan kuadrat akan terkumpul dalam sebuah loop:
def outer(lst):
def inner(num):
return num ** 2
res = []
for el in lst:
res.append(inner(el))
return res
Mari kita panggil fungsi outer,
berikan parameter list dan tampilkan
hasilnya di konsol:
print(outer([2, 3, 5])) # akan menampilkan [4, 9, 25]
Tulis fungsi luar dan fungsi dalam, di mana kerja samanya akan menampilkan setiap elemen string dari list dengan huruf kapital.
Diberikan fungsi:
def func1(num):
if num > 0:
num += 2
return num
def func2(iter):
res = []
for el in iter:
res.append(func1(el))
return res
Tulis ulang kode sehingga func1
menjadi fungsi internal untuk func2.