Combinatie van parameters in Python
Aan dezelfde functie kunnen tegelijkertijd
genaamde en positionele parameters worden doorgegeven.
Dit wordt gedaan met behulp van het symbool *,
dat aangeeft dat de parameters rechts
ervan als genaamd moeten worden beschouwd,
als hun standaardwaarden niet gebruikt hoeven te worden.
Laten we een functie maken die
alle parameters naar de console zal uitvoeren. De variabele
data zal een gewone
positionele parameter vertegenwoordigen. Vervolgens, na het symbool
*, worden twee variabelen start
en end met standaardwaarden gedefinieerd.
Bij het aanroepen van de functie zullen we deze
variabelen echter als genaamd opgeven:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Resultaat van de code-uitvoering:
1 2 3
Als we de standaardwaarde van de variabele
start verwijderen en deze tegelijkertijd niet
als een genaamde parameter opgeven, zal er een fout optreden.
Dit gebeurt omdat het symbool *
start al heeft gedefinieerd als een genaamde
variabele:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # geeft een foutmelding
Wat zal het resultaat zijn van de volgende code:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
Wat zal het resultaat zijn van de volgende code:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
Wat zal het resultaat zijn van de volgende code:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))