Funkcija kā mainīgais Python
Python funkcija pēc savas būtības ir mainīgais. Un tas nozīmē, ka to var arī padot.
Pieņemsim, ka mums ir funkcija, kas atgriež izsaukuma zīmi:
def func():
return '!'
Padosim print funkcijas nosaukumu
bez apaļajām iekavām kā mainīgo:
print(func)
Pēc koda izpildes konsolē tiks izvadīts speciāls objekts, kas satur informāciju par šo funkciju:
<function func at 0x0000022816383E20>
Tagad deklarēsim mainīgo func2,
kura vērtībā padodam funkciju func1.
Pati funkcija tiks padota nevis pēc
vērtības, bet pēc atsauces kā objekts. Un, izsaucot
func2 ar apaļajām iekavām,
konsolē tiks izvadīts func1 darbības rezultāts:
def func1():
print('!')
func2 = func1
func2() # izvadīs '!'
Kāds būs šāda koda izpildes rezultāts:
def func():
print('hello, user!')
greet = func
print(greet)
Kāds būs šāda koda izpildes rezultāts:
def getSum(num1, num2):
res = num1 + num2
return res
func = getSum
print(func(2, 3))