Parametrien yhdistäminen Pythonissa
Samaan funktioon voidaan samanaikaisesti
välittää sekä nimettyjä että paikallisia parametreja.
Tämä tehdään käyttämällä symbolia *,
joka ilmaisee, että sen oikealla puolella määritellyt
parametrit tulee käsitellä nimetyinä,
jos niiden oletusarvoja ei tarvitse
käyttää.
Luodaan funktio, joka tulostaa
kaikki parametrit konsoliin. Muuttuja
data edustaa tavallista
paikallista parametria. Sen jälkeen *-symbolin
jälkeen määritellään kaksi muuttujaa start
ja end oletusarvoilla.
Kuitenkin funktiota kutsuttaessa teemme näistä
muuttujista nimetyt:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Koodin suorituksen tulos:
1 2 3
Jos poistamme muuttujan start
oletusarvon ja samalla emme määritä sitä
nimetyksi parametriksi, tulee virhe.
Tämä johtuu siitä, että symboli *
on jo määritellyt start nimetyksi
muuttujaksi:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # tulostaa virheen
Mikä on seuraavan koodin suorituksen tulos:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
Mikä on seuraavan koodin suorituksen tulos:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
Mikä on seuraavan koodin suorituksen tulos:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))