Funkcija kot spremenljivka v Pythonu

V Pythonu je funkcija v bistvu spremenljivka. In to pomeni, da jo lahko tudi prenesemo.

Recimo, da imamo funkcijo, ki vrne klicaj:

pythondef func():
  return '!'

Prenesimo v print ime funkcije brez okroglih oklepajev kot spremenljivko:

pythonprint(func)

Po izvedbi kode se bo v konzolo izpisal poseben objekt, ki vsebuje informacije o tej funkciji:

python<function func at 0x0000022816383E20>

Zdaj pa deklarirajmo spremenljivko func2, v katero vrednost prenesemo funkcijo func1. Sama funkcija se bo prenesla ne po vrednosti, temveč po referenci kot objekt. In pri klicu func2 z okroglimi oklepaji se bo v konzolo izpisal rezultat delovanja func1:

pythondef func1():
print('!')

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

Kakšen bo rezultat izvajanja naslednje kode:

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

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

Kakšen bo rezultat izvajanja naslednje kode:

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

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