Kombinering av parametere i Python
Til den samme funksjonen kan man samtidig
sende både navngitte og posisjonelle parametere.
Dette gjøres ved hjelp av symbolet *,
som indikerer at parametrene spesifisert
til høyre for den skal betraktes som navngitte,
hvis deres standardverdier ikke skal
brukes.
La oss opprette en funksjon som vil
skrive ut alle parametere til konsollen. Variabelen
data vil representere en vanlig
posisjonell parameter. Deretter, etter symbolet
*, spesifiseres to variabler start
og end med standardverdier.
Men når vi kaller funksjonen, gjør vi disse
variablene navngitte:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Resultatet av kodekjøringen:
1 2 3
Hvis vi fjerner standardverdien til variabelen
start og samtidig ikke oppgir den som en
navngitt parameter, vil det vises en feil.
Dette skjer fordi symbolet *
allerede har definert start som en navngitt
variabel:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # vil gi feil
Hva blir resultatet av følgende kode:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
Hva blir resultatet av følgende kode:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
Hva blir resultatet av følgende kode:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))