Kombinování parametrů v Pythonu
Do stejné funkce lze současně
předat pojmenované a poziční parametry.
To se provádí pomocí symbolu *,
který označuje, že parametry uvedené
napravo od něj by měly být považovány za pojmenované,
pokud není potřeba použít jejich
výchozí hodnoty.
Vytvořme funkci, která bude
vypisovat všechny parametry do konzole. Proměnná
data bude označovat obyčejný
poziční parametr. Dále za symbolem
* jsou zadány dvě proměnné start
a end s výchozími hodnotami.
Při volání funkce však tyto
proměnné nastavme jako pojmenované:
pythondef func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Výsledek provedení kódu:
python1 2 3
Pokud odstraníme výchozí hodnotu proměnné
start a zároveň ji odstraníme jako
pojmenovaný parametr, zobrazí se chyba.
To proto, že symbol *
již definoval start jako pojmenovanou
proměnnou:
pythondef func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # vypíše chybu
Jaký bude výsledek provedení následujícího kódu:
pythondef func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
Jaký bude výsledek provedení následujícího kódu:
pythondef func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
Jaký bude výsledek provedení následujícího kódu:
pythondef func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))