Pythonda Funktsiya O'zgaruvchi Sifatida
Pythonda funktsiya mohiyatan o'zgaruvchidir. Bu shuni anglatadiki, uni ham o'tkazish mumkin.
Bizda undov belgisini qaytaradigan funktsiya bo'lsin:
def func():
return '!'
Keling, print ga funktsiya nomini
qavssiz o'zgaruvchi sifatida o'tkazamiz:
print(func)
Kod bajarilgandan so'ng, konsolda ushbu funktsiya haqida ma'lumotni o'z ichiga olgan maxsus obyekt chiqadi:
<function func at 0x0000022816383E20>
Endi func2 o'zgaruvchisini e'lon qilaylik,
uning qiymatiga func1 funktsiyasini
o'tkazamiz. Funktsiyaning o'zi qiymat bo'yicha
emas, balki obyekt sifatida havola bo'yicha
o'tkaziladi. Va func2 ni qavs bilan
chaqirganda, konsolda func1 ning ishlash
natijasi chiqadi:
def func1():
print('!')
func2 = func1
func2() # '!' chiqadi
Quyidagi kodni bajarish natijasi qanday bo'ladi:
def func():
print('hello, user!')
greet = func
print(greet)
Quyidagi kodni bajarish natijasi qanday bo'ladi:
def getSum(num1, num2):
res = num1 + num2
return res
func = getSum
print(func(2, 3))