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:

pythondef func():
  return '!'

Keling, print ga funktsiya nomini qavssiz o'zgaruvchi sifatida o'tkazamiz:

pythonprint(func)

Kod bajarilgandan so'ng, konsolda ushbu funktsiya haqida ma'lumotni o'z ichiga olgan maxsus obyekt chiqadi:

python<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:

pythondef func1():
print('!')

func2 = func1
func2() # '!' chiqadi
Задание 1

Quyidagi kodni bajarish natijasi qanday bo'ladi:

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

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

Quyidagi kodni bajarish natijasi qanday bo'ladi:

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

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