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