Nuansa dalam Bekerja dengan Fungsi Internal di Python
Di Python tidak hanya ada fungsi
bersarang, tetapi satu fungsi juga dapat mengembalikan
fungsi lain. Misalnya, fungsi outer
mengembalikan kode sumber
fungsi inner sebagai hasil:
def outer():
def inner():
return '+++'
return inner
Mari kita panggil outer dan simpan ke dalam
variabel res:
res = outer()
print(res)
Setelah kode dieksekusi, akan ditampilkan objek fungsi:
<function outer.<locals>.inner at 0x000001564A212B90>
Jika variabel res dipanggil dengan
tanda kurung, maka pesan
'+++' akan dikembalikan:
print(res()) # akan menampilkan '+++'
Kode dapat ditulis ulang sehingga res
berisi outer dengan dua tanda kurung
- untuk memanggil dirinya sendiri dan fungsi
inner. Oleh karena itu, dapat
ditulis tanda kurung tambahan
di sebelah kanan fungsi luar sesuai dengan jumlah
fungsi yang bersarang di dalamnya:
res = outer()()
print(res) # akan menampilkan '+++'
Diberikan kode berikut:
def outer():
def inner(num):
return num + 2
return inner
res = outer()(3)
print(res)
Jelaskan apa yang akan ditampilkan di konsol.
Diberikan kode berikut:
def outer():
def inner(txt):
return 'hello, ' + txt
return inner
res = outer()
print(res)
Jelaskan apa yang akan ditampilkan di konsol.