Python-da funksiýa üýtgeýän hökmünde

Python-da funksiýa esasynda bir üýtgeýändir. Bu bolsa, ony hem geçirip bolýandygyny aňladýar.

Geliň, ýarym nokat gaýtaryan bir funksiýamyz bolsun:

pythondef func():
  return '!'

Geliň print funksiýasyna onuň adyny ýumrugy ýok, üýtgeýän ýaly geçireliň:

pythonprint(func)

Kod ýerine ýetirilenden soň, konsolde bu funksiýa barada maglumat saklaýan ýörite bir obýekt görkeziler:

python<function func at 0x0000022816383E20>

Indi func2 atly bir üýtgeýân döredeliň, onuň bahasyna func1 funksiýasyny belleýäris. Funksiýanyň özi bahasy boýunça däl-de, salgy boýunça obýekt hökmünde geçiriler. We ýumrugy bilen çaýrylýan func2 konsolda func1-iň netijesini görkezer:

pythondef func1():
print('!')

func2 = func1
func2() # '!' görkezer
Задание 1

Aşakdaky kodyň ýerine ýetiriliş netijesi näme bolar:

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

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

Aşakdaky kodyň ýerine ýetiriliş netijesi näme bolar:

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

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