Python да функция ўзгарувчи сифатида
Python да функция аслан ўзгарувчидир. Ва бу уни ҳам ўтказиб юбориш мумкин деганидир.
Бизда қайтиш белгисини қайтарувчи функция бор деб фараз қилайлик:
def func():
return '!'
Келгила, print га функция номини
айланмас ёзувсиз ўзгарувчи сифатида ўтказайлик:
print(func)
Код бажарилганидан сўнг консолга бу функция ҳақида маълумотни ўз ичига олган махсус объект чиқади:
<function func at 0x0000022816383E20>
Энди func2 ўзгарувчисини эълон қилайлик,
унгинг қийматига func1 функциясини ўтказамиз.
Функциянинг ўзи қиймат бўйича эмас, балки
объект сифатида havola бўйича ўтказилади. Ва
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))