Функција како променлива во Python

Во Python функцијата во суштина е променлива. И тоа значи дека може да се пренесува.

Да претпоставиме дека имаме функција која враќа извичник:

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))