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é:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Výsledek provedení kódu:
1 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:
def 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:
def 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:
def 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:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))