Funkcija kaip kintamasis Python kalboje
Python kalboje funkcija iš esmės yra kintamasis. Ir tai reiškia, kad ją taip pat galima perduoti.
Tarkime, turime funkciją, kuri grąžina šauktuką:
def func():
return '!'
Perduokime į print funkcijos pavadinimą
be apvalių skliaustų kaip kintamąjį:
print(func)
Vykdant kodą, į konsolę bus išvestas specialus objektas, kuriame yra informacija apie šią funkciją:
<function func at 0x0000022816383E20>
Dabar deklaruokime kintamąjį func2,
kurio reikšmei perduosime funkciją func1.
Pati funkcija bus perduodama ne pagal
reikšmę, o pagal nuorodą kaip objektas. Ir
iškvietus func2 su apvaliaisiais skliaustais
į konsolę bus išvestas func1 veikimo rezultatas:
def func1():
print('!')
func2 = func1
func2() # išves '!'
Koks bus šio kodo vykdymo rezultatas:
def func():
print('hello, user!')
greet = func
print(greet)
Koks bus šio kodo vykdymo rezultatas:
def getSum(num1, num2):
res = num1 + num2
return res
func = getSum
print(func(2, 3))