Python'дун ички функциясы менен иштөөдөгү нюанстар

Python'до кирилген функциялар гана эмес, бир функция башка функцияны кайтара алат. Мисалы, outer функциясы inner функциясынын баштапкы кодун натыйжа катары кайтарсын:

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

  return inner

Келгиле, outer чакыруусун res өзгөрмөсүнө жазалы:

pythonres = outer()
print(res)

Код ишке ашырылгандан кийин, функциясы бар объект чыгарылат:

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

Эгерде res өзгөрмөсүн тегерек жаймалар менен чакырсак, анда '+++' билдирүүсү кайтарылат:

pythonprint(res()) # '+++' чыгарат

Кодду кайра жазууга болот, анда res өзгөрмөсүнө эки тегерек жайма менен outer жазылат - өзүн жана inner функциясын чакыруу үчүн. Бул тышкы функциянын оң жагындагы кошумча тегерек жаймаларды, анын ичиндеги функциялардын санына жараша жазууга мүмкүн экенин көрсөтөт:

pythonres = outer()()
print(res) # '+++' чыгарат
Задание 1

Төмөнкү код берилген:

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

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

Консолго эмне чыгаарын айтыңыз.

Задание 2

Төмөнкү код берилген:

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

  return inner
  
res = outer()
print(res)

Консолго эмне чыгаарын айтыңыз.