Kombinovanje parametara u Pythonu
U istu funkciju je moguće istovremeno
proslediti imenovane i pozicione parametre.
To se radi pomoću simbola *,
koji označava da parametre navedene
sa desne strane od njega treba smatrati imenovanim,
ako njihove podrazumevane vrednosti nije potrebno
koristiti.
Hajde da kreiramo funkciju koja će
ispisivati sve parametre u konzolu. Promenljiva
data će označavati običan
pozicioni parametar. Zatim nakon simbola
* postavljaju se dve promenljive start
i end sa podrazumevanim vrednostima.
Međutim, prilikom poziva funkcije učinićemo ove
promenljive imenovanim:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Rezultat izvršavanja koda:
1 2 3
Ako uklonite podrazumevanu vrednost promenljive
start i u isto vreme je uklonite kao
imenovani parametar, ispisaće se greška.
To se dešava zato što je simbol *
već definisao start kao imenovanu
promenljivu:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # ispisaće grešku
Kakav će biti rezultat izvršavanja sledećeg koda:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
Kakav će biti rezultat izvršavanja sledećeg koda:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
Kakav će biti rezultat izvršavanja sledećeg koda:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))