Ֆունկցիան որպես փոփոխական 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))