Нюансы пры працы з унутранай функцыяй у 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)

Скажыце, што выйдзе ў кансоль.