Функција као променљива у Пајтону

У Пајтону је функција у суштини променљива. А то значи да се она такође може преносити.

Рецимо да имамо функцију која враћа узвичник:

pythondef func():
  return '!'

Хајде да проследимо у print име функције без заграда као променљиву:

pythonprint(func)

Након извршења кода у конзолу ће се исписати специјални објекат који садржи информације о датој функцији:

python<function func at 0x0000022816383E20>

Сада ћемо декларисати променљиву func2, у чију вредност ћемо проследити функцију func1. Сама функција ће се преносити не као вредност, већ као референца на објекат. И при позиву func2 са заградама у конзолу ће се исписати резултат рада func1:

pythondef func1():
print('!')

func2 = func1
func2() # исписаће '!'
Задание 1

Какав ће бити резултат извршавања следећег кода:

pythondef func():
  print('hello, user!')

greet = func
print(greet)
Задание 2

Какав ће бити резултат извршавања следећег кода:

pythondef getSum(num1, num2):
  res = num1 + num2
  return res

func = getSum
print(func(2, 3))