Fungsi dalam Fungsi dalam Python
Dalam Python, di dalam satu fungsi, anda boleh mengisytiharkan
fungsi lain. Katakan kita mempunyai fungsi luaran
outer, di dalamnya terdapat
fungsi inner:
def outer():
def inner():
pass
Contoh di atas kelihatan cukup
mudah. Walau bagaimanapun, sering terdapat situasi di mana
dalam badan fungsi outer selain
inner, operasi lain juga
dijalankan. Untuk memudahkan kod, kita boleh
mengeluarkan inner ke blok luaran
kod, tetapi fungsi ini akan digunakan
hanya sekali dan hanya di dalam fungsi
outer. Oleh itu, tidak masuk akal untuk mengeluarkannya.
Mari kita lihat contoh di mana senarai
dihantar ke fungsi outer. Dan dengan bantuan
fungsi inner, elemen berangka
senarai akan dikuasakan dua.
Untuk melakukan ini, selepas fungsi inner
kita isytiharkan senarai kosong res, di
mana elemen yang dikuasakan dua akan dikumpulkan dalam gelung:
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,
hantarkan parameter senarai kepadanya dan output
hasilnya ke konsol:
print(outer([2, 3, 5])) # akan output [4, 9, 25]
Tulis fungsi luaran dan dalaman, kerjasama yang akan output setiap elemen rentetan dalam senarai dengan huruf besar.
Diberi 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 semula kod supaya func1
menjadi fungsi dalaman untuk func2.