Funktio muuttujana Pythonissa
Pythonissa funktio on olennaisesti muuttuja. Ja tämä tarkoittaa, että sitä voidaan myös siirtää.
Oletetaan, että meillä on funktio, joka palauttaa huutomerkin:
def func():
return '!'
Annetaan print-funktiolle
funktion nimi
ilman pyöreitä sulkeita muuttujana:
print(func)
Koodin suorittamisen jälkeen konsoliin tulostuu erikoinen objekti, joka sisältää tietoa kyseisestä funktiosta:
<function func at 0x0000022816383E20>
Nyt esitellään muuttuja func2,
johon annetaan arvoksi funktio func1.
Itse funktio siirretään ei
arvona, vaan viitteenä objektina. Ja kun
kutsutaan func2:ia
pyöreillä sulkeilla,
konsoliin tulostuu func1:n suorituksen tulos:
def func1():
print('!')
func2 = func1
func2() # tulostaa '!'
Mikä on seuraavan koodin suorituksen tulos:
def func():
print('hello, user!')
greet = func
print(greet)
Mikä on seuraavan koodin suorituksen tulos:
def getSum(num1, num2):
res = num1 + num2
return res
func = getSum
print(func(2, 3))