Funkcija kao promenljiva u Pythonu

U Pythonu, funkcija je u suštini promenljiva. A to znači da se ona takođe može proslediti.

Neka postoji funkcija koja vraća uzvičnik:

pythondef func():
  return '!'

Hajde da prosledimo u print ime funkcije bez okruglih zagrada kao promenljivu:

pythonprint(func)

Nakon izvršavanja koda u konzolu će biti prikazan specijalni objekat koji sadrži informacije o ovoj funkciji:

python<function func at 0x0000022816383E20>

Sada hajde da deklarišemo promenljivu func2, čijoj vrednosti ćemo proslediti funkciju func1. Sama funkcija će biti prosleđena ne po vrednosti, već po referenci kao objekat. I kada pozovemo func2 sa okruglim zagradama u konzolu će se prikazati rezultat rada func1:

pythondef func1():
print('!')

func2 = func1
func2() # prikazaće '!'
Задание 1

Kakav će biti rezultat izvršavanja sledećeg koda:

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

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

Kakav će biti rezultat izvršavanja sledećeg koda:

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

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