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:

pythondef outer():
  def inner():
    return '+++'

  return inner

Mari kita panggil outer dan simpan ke dalam variabel res:

pythonres = outer()
print(res)

Setelah kode dieksekusi, akan ditampilkan objek fungsi:

python<function outer.<locals>.inner at 0x000001564A212B90>

Jika variabel res dipanggil dengan tanda kurung, maka pesan '+++' akan dikembalikan:

pythonprint(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:

pythonres = outer()()
print(res) # akan menampilkan '+++'
Задание 1

Diberikan kode berikut:

pythondef outer():
  def inner(num):
    return num + 2

  return inner
  
res = outer()(3)
print(res)

Jelaskan apa yang akan ditampilkan di konsol.

Задание 2

Diberikan kode berikut:

pythondef outer():
  def inner(txt):
    return 'hello, ' + txt

  return inner
  
res = outer()
print(res)

Jelaskan apa yang akan ditampilkan di konsol.