Parameetrite kombineerimine Pythonis
Samasse funktsiooni saab üheaegselt
edastada nii nimetatud kui positsioonilisi parameetreid.
See tehakse sümboli * abil,
mis tähistab, et sellest paremal pool määratud
parameetreid tuleks lugeda nimetatud parameetriteks,
kui nende vaikeväärtusi pole vaja
kasutada.
Loome funktsiooni, mis
väljastab kõik parameetrid konsooli. Muutuja
data tähistab tavalist
positsioonilist parameetrit. Seejärel pärast sümbolit
* määratakse kaks muutujat start
ja end vaikeväärtustega.
Kuid funktsiooni kutsumisel teeme need
muutujad nimetatuks:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Koodi täitmise tulemus:
1 2 3
Kui eemaldada muutuja start
vaikeväärtus ja samal ajal jätta see määramata
nimetatud parameetrina, kuvatakse viga.
See juhtub seetõttu, et sümbol *
on juba määranud start nimetatud
muutujaks:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # annab vea
Milline on järgmise koodi täitmise tulemus:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
Milline on järgmise koodi täitmise tulemus:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
Milline on järgmise koodi täitmise tulemus:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))