Funkcija kā mainīgais Python

Python funkcija pēc savas būtības ir mainīgais. Un tas nozīmē, ka to var arī padot.

Pieņemsim, ka mums ir funkcija, kas atgriež izsaukuma zīmi:

pythondef func():
  return '!'

Padosim print funkcijas nosaukumu bez apaļajām iekavām kā mainīgo:

pythonprint(func)

Pēc koda izpildes konsolē tiks izvadīts speciāls objekts, kas satur informāciju par šo funkciju:

python<function func at 0x0000022816383E20>

Tagad deklarēsim mainīgo func2, kura vērtībā padodam funkciju func1. Pati funkcija tiks padota nevis pēc vērtības, bet pēc atsauces kā objekts. Un, izsaucot func2 ar apaļajām iekavām, konsolē tiks izvadīts func1 darbības rezultāts:

pythondef func1():
print('!')

func2 = func1
func2() # izvadīs '!'
Задание 1

Kāds būs šāda koda izpildes rezultāts:

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

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

Kāds būs šāda koda izpildes rezultāts:

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

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