Funktsioon kui muutuja Pythonis
Pythonis on funktsioon oma olemuselt muutuja. See tähendab, et seda saab samuti edasi anda.
Olgu meil funktsioon, mis tagastab hüüumismärgi:
def func():
return '!'
Edastame print-ile funktsiooni nime
ilma ümarsulgudeta kui muutuja:
print(func)
Pärast koodi täitmist kuvatakse konsooli spetsiaalne objekt, mis sisaldab teavet selle funktsiooni kohta:
<function func at 0x0000022816383E20>
Nüüd deklareerime muutuja func2,
mille väärtusesse anname funktsiooni func1.
Funktsioon ise antakse edasi mitte
väärtusena, vaid viidana objektina. Ja
kui kutsuda func2 ümarsulgudega,
kuvatakse konsooli func1 töö tulemus:
def func1():
print('!')
func2 = func1
func2() # väljastab '!'
Milline on järgmise koodi täitmise tulemus:
def func():
print('hello, user!')
greet = func
print(greet)
Milline on järgmise koodi täitmise tulemus:
def getSum(num1, num2):
res = num1 + num2
return res
func = getSum
print(func(2, 3))