Useen parametrien välittäminen funktioon Pythonissa
Oletetaan, että meillä on funktio, joka ottaa vastaan useita numeerisia parametreja:
def func(num1, num2):
return num1 + num2
print(func1(2, 3))
Kun funktiota kutsutaan, annetut luvut 2
ja 3 menevät muuttujiin num1
ja num2 vastaavasti.
Mutta on tapauksia, joissa funktiota kutsuttaessa
on välitettävä monia parametreja, joiden määrä
ei ole tiedossa etukäteen. Pythonissa voidaan
funktion määrittelyssä asettaa vain yksi
muuttuja, josta myöhemmin muodostetaan
kaikkien kutsun yhteydessä välitettyjen parametrien monikko.
Tätä varten tämän muuttujan eteen on
asettava symboli *. Tällaista muuttujaa
tapana kutsua args, mutta sille voidaan
antaa mikä tahansa muu nimi. Ja kaikkien
parametrien tulostamiseksi funktion sisällä on
kirjoitettava tämä muuttuja, mutta ilman
*:
def func(*args):
return args
print(func(1, 2, 3)) # tulostaa (1, 2, 3)
Seuraavaksi saaduille parametreille voidaan suorittaa mitä tahansa muita operaatioita. Lasketaan niiden summa:
def func(*args):
return sum(args)
print(func(1, 2, 3)) # tulostaa 6
Kirjoita funktio, joka ottaa vastaan rajattoman määrän käyttäjien nimiä parametreina ja tulostaa ne konsoliin monikkona.