Kombinering af parametre i Python
Det er muligt at overføre både navngivne og positionelle parametre
samtidig til den samme funktion.
Dette gøres ved hjælp af symbolet *,
som angiver, at parametrene angivet
til højre for det skal betragtes som navngivne,
hvis deres standardværdier ikke skal bruges.
Lad os oprette en funktion, som vil
udskrive alle parametre i konsollen. Variablen
data vil betegne en almindelig
positionel parameter. Derefter efter symbolet
* angives to variable start
og end med standardværdier.
Men når funktionen kaldes, gør vi disse
variable navngivne:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Resultatet af kodeudførelsen:
1 2 3
Hvis man fjerner standardværdien for variablen
start og samtidig fjerner den som
en navngiven parameter, vil der vises en fejl.
Dette sker fordi symbolet *
allerede har defineret start som en navngiven
variabel:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # vil vise en fejl
Hvad bliver resultatet af følgende kodeudførelse:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
Hvad bliver resultatet af følgende kodeudførelse:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
Hvad bliver resultatet af følgende kodeudførelse:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))