Функция как переменная в 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))