Kombinera parametrar i Python
Till samma funktion kan man samtidigt
skicka namngivna och positionella parametrar.
Detta görs med symbolen *,
som betyder att parametrarna som anges
till höger om den ska betraktas som namngivna,
om deras standardvärden inte behöver
användas.
Låt oss skapa en funktion som kommer att
skriva ut alla parametrar i konsolen. Variabeln
data kommer att beteckna en vanlig
positionell parameter. Sedan efter symbolen
* sätts två variabler start
och end med standardvärden.
Men när vi anropar funktionen gör vi dessa
variabler namngivna:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Resultat av kodkörning:
1 2 3
Om man tar bort standardvärdet för variabeln
start och samtidigt tar bort den som
en namngiven parameter, kommer ett fel att visas.
Detta händer eftersom symbolen *
redan har definierat start som en namngiven
variabel:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # kommer att visa ett fel
Vad blir resultatet av följande kod:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
Vad blir resultatet av följande kod:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
Vad blir resultatet av följande kod:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))