Функсия ҳамчун тағирёбанда дар 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))