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:

pythondef func():
  return '!'

Annetaan print-funktiolle funktion nimi ilman pyöreitä sulkeita muuttujana:

pythonprint(func)

Koodin suorittamisen jälkeen konsoliin tulostuu erikoinen objekti, joka sisältää tietoa kyseisestä funktiosta:

python<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:

pythondef func1():
print('!')

func2 = func1
func2() # tulostaa '!'
Задание 1

Mikä on seuraavan koodin suorituksen tulos:

pythondef func():
  print('hello, user!')

greet = func
print(greet)
Задание 2

Mikä on seuraavan koodin suorituksen tulos:

pythondef getSum(num1, num2):
  res = num1 + num2
  return res

func = getSum
print(func(2, 3))