Funkcija kaip kintamasis Python kalboje

Python kalboje funkcija iš esmės yra kintamasis. Ir tai reiškia, kad ją taip pat galima perduoti.

Tarkime, turime funkciją, kuri grąžina šauktuką:

pythondef func():
  return '!'

Perduokime į print funkcijos pavadinimą be apvalių skliaustų kaip kintamąjį:

pythonprint(func)

Vykdant kodą, į konsolę bus išvestas specialus objektas, kuriame yra informacija apie šią funkciją:

python<function func at 0x0000022816383E20>

Dabar deklaruokime kintamąjį func2, kurio reikšmei perduosime funkciją func1. Pati funkcija bus perduodama ne pagal reikšmę, o pagal nuorodą kaip objektas. Ir iškvietus func2 su apvaliaisiais skliaustais į konsolę bus išvestas func1 veikimo rezultatas:

pythondef func1():
print('!')

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

Koks bus šio kodo vykdymo rezultatas:

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

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

Koks bus šio kodo vykdymo rezultatas:

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

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