Łączenie parametrów w Pythonie
Do tej samej funkcji można jednocześnie
przekazać parametry nazwane i pozycyjne.
Robimy to za pomocą symbolu *,
który oznacza, że parametry podane
po jego prawej stronie należy uważać za nazwane,
jeśli nie chcemy użyć ich wartości
domyślnych.
Stwórzmy funkcję, która będzie
wyświetlać wszystkie parametry w konsoli. Zmienna
data będzie oznaczać zwykły
parametr pozycyjny. Następnie po symbolu
* podane są dwie zmienne start
i end z wartościami domyślnymi.
Jednak przy wywołaniu funkcji zróbmy te
zmienne nazwanymi:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Wynik wykonania kodu:
1 2 3
Jeśli jednak usuniemy wartość domyślną zmiennej
start i jednocześnie usuniemy ją jako
parametr nazwany, to pojawi się błąd.
Dzieje się tak, ponieważ symbol *
już zdefiniował start jako nazwaną
zmienną:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # wyświetli błąd
Jaki będzie wynik wykonania następującego kodu:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
Jaki będzie wynik wykonania następującego kodu:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
Jaki będzie wynik wykonania następującego kodu:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))