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)

Консольге не шығарылатынын айтыңыз.