Mitme parameetri edastamine funktsioonile Pythonis
Oletame, et meil on funktsioon, mis võtab vastu mitu numbrilist parameetrit:
def func(num1, num2):
return num1 + num2
print(func1(2, 3))
Funktsiooni väljakutsumisel antud numbrid 2
ja 3 satuvad muutujatesse num1
ja num2 vastavalt.
Kuid on juhtumeid, kui funktsiooni väljakutsumisel
on vaja edastada palju parameetreid, mille arv
ette teadmata. Pythonis saab
funktsiooni deklareerimisel määrata ainult ühe
muutuja, millest hiljem moodustub
kõikide väljakutsumisel edastatud parameetrite korteež.
Selleks tuleb enne seda muutujat
määrata sümbol *. Sellist muutujat
tavapäraselt nimetatakse args, kuid sellele võib
panna ka mis tahes muu nime. Ja kui
soovime kõik parameetrid välja printida, tuleb
funktsiooni kehas kirjutada see muutuja, kuid ilma
*:
def func(*args):
return args
print(func(1, 2, 3)) # väljastab (1, 2, 3)
Edasi saab saadud parameetritega teha mis tahes muid operatsioone. Teeme nende summa:
def func(*args):
return sum(args)
print(func(1, 2, 3)) # väljastab 6
Kirjutage funktsioon, mis võtab vastu parameetritena piiramatu koguse kasutajanimed ja väljastab need konsooli korteežina.