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:

pythondef 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:

pythondef 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:

pythonprint(outer([2, 3, 5])) # akan output [4, 9, 25]
Задание 1

Tulis fungsi luaran dan dalaman, kerjasama yang akan output setiap elemen rentetan dalam senarai dengan huruf besar.

Задание 2

Diberi fungsi:

pythondef 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.