Funkcija kao promenljiva u Pythonu
U Pythonu, funkcija je u suštini promenljiva. A to znači da se ona takođe može proslediti.
Neka postoji funkcija koja vraća uzvičnik:
def func():
return '!'
Hajde da prosledimo u print ime funkcije
bez okruglih zagrada kao promenljivu:
print(func)
Nakon izvršavanja koda u konzolu će biti prikazan specijalni objekat koji sadrži informacije o ovoj funkciji:
<function func at 0x0000022816383E20>
Sada hajde da deklarišemo promenljivu func2,
čijoj vrednosti ćemo proslediti funkciju func1.
Sama funkcija će biti prosleđena ne po
vrednosti, već po referenci kao objekat. I kada
pozovemo func2 sa okruglim zagradama u
konzolu će se prikazati rezultat rada func1:
def func1():
print('!')
func2 = func1
func2() # prikazaće '!'
Kakav će biti rezultat izvršavanja sledećeg koda:
def func():
print('hello, user!')
greet = func
print(greet)
Kakav će biti rezultat izvršavanja sledećeg koda:
def getSum(num1, num2):
res = num1 + num2
return res
func = getSum
print(func(2, 3))