Funktsioon kui muutuja Pythonis

Pythonis on funktsioon oma olemuselt muutuja. See tähendab, et seda saab samuti edasi anda.

Olgu meil funktsioon, mis tagastab hüüumismärgi:

pythondef func():
  return '!'

Edastame print-ile funktsiooni nime ilma ümarsulgudeta kui muutuja:

pythonprint(func)

Pärast koodi täitmist kuvatakse konsooli spetsiaalne objekt, mis sisaldab teavet selle funktsiooni kohta:

python<function func at 0x0000022816383E20>

Nüüd deklareerime muutuja func2, mille väärtusesse anname funktsiooni func1. Funktsioon ise antakse edasi mitte väärtusena, vaid viidana objektina. Ja kui kutsuda func2 ümarsulgudega, kuvatakse konsooli func1 töö tulemus:

pythondef func1():
print('!')

func2 = func1
func2() # väljastab '!'
Задание 1

Milline on järgmise koodi täitmise tulemus:

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

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

Milline on järgmise koodi täitmise tulemus:

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

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