Функсия ҳамчун тағирёбанда дар Python
Дар Python функсия дар ҳақиқат худ тағирёбанда мебошад. Ва ин маънои онро дорад, ки онро инчунин метавон интиқол дод.
Бигзор мо функсияе дошта бошем, ки аломати тааҷҷубро бармегардонад:
def func():
return '!'
Биёед номи функсияро
бе қавсҳои даврашакл ҳамчун тағирёбанда ба print интиқол диҳем:
print(func)
Пас аз иҷрои код дар консоль объекти махсус, ки дорои иттилоот дар бораи ин функсия аст, чоп мешавад:
<function func at 0x0000022816383E20>
Ҳоло биёед тағирёбандаи func2-ро эълон кунем,
дар қимати он функсияи func1-ро интиқол медиҳем.
Худи функсия на бо
қимат, балки бо реферат ҳамчун объект интиқол дода мешавад. Ва вақте ки
func2 бо қавсҳои даврашакл даъват карда шавад, дар
консоль натиҷаи кори func1 чоп мешавад:
def func1():
print('!')
func2 = func1
func2() # '!'-ро чоп мекунад
Натиҷаи иҷрои коди зерин чӣ хоҳад буд:
def func():
print('hello, user!')
greet = func
print(greet)
Натиҷаи иҷрои коди зерин чӣ хоҳад буд:
def getSum(num1, num2):
res = num1 + num2
return res
func = getSum
print(func(2, 3))