Funkcja jako zmienna w Pythonie

W Pythonie funkcja w swojej istocie jest zmienną. A to oznacza, że można ją również przekazywać.

Załóżmy, że mamy funkcję, która zwraca wykrzyknik:

pythondef func():
  return '!'

Przekażmy do print nazwę funkcji bez nawiasów okrągłych jako zmienną:

pythonprint(func)

Po wykonaniu kodu w konsoli wyświetli się specjalny obiekt, zawierający informację o danej funkcji:

python<function func at 0x0000022816383E20>

Teraz zadeklarujmy zmienną func2, do wartości której przekażemy funkcję func1. Sama funkcja będzie przekazywana nie przez wartość, ale przez referencję jako obiekt. I przy wywołaniu func2 z nawiasami okrągłymi w konsoli wyświetli się wynik działania func1:

pythondef func1():
print('!')

func2 = func1
func2() # wyświetli '!'
Задание 1

Jaki będzie wynik wykonania następującego kodu:

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

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

Jaki będzie wynik wykonania następującego kodu:

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

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