Нюансы при работе с внутренней функцией в 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)

Скажите, что выведется в консоль.