Kombiniranje parametrov v Pythonu

V isto funkcijo je mogoče hkrati posredovati poimenovane in pozicijske parametre. To naredimo s simbolom *, ki označuje, da je treba parametre, navedene desno od njega, šteti za poimenovane, če njihovih privzetih vrednosti ni treba uporabiti.

Ustvarimo funkcijo, ki bo izpisala vse parametre v konzolo. Spremenljivka data bo označevala običajen pozicijski parameter. Nato za simbolom * nastavimo dve spremenljivki start in end s privzetimi vrednostmi. Vendar pri klicu funkcije te spremenljivke naredimo za poimenovane:

pythondef func(data, *, start=0, end=100):
  print(data, start, end)
  
func(1, start=2, end=3)

Rezultat izvajanja kode:

python1 2 3

Če odstranimo privzeto vrednost spremenljivke start in jo hkrati odstranimo kot poimenovani parameter, se prikaže napaka. To se zgodi, ker je simbol * že določil start kot poimenovano spremenljivko:

pythondef func(data, *, start, end=100):
  print(data, start, end)
  
func(1, 2, end=3) # prikaže napako
Задание 1

Kakšen bo rezultat izvajanja naslednje kode:

pythondef func(num1, num2, *, num3):
  return (num1 + num2) * num3
  
print(func(2, 4, num3=3))
Задание 2

Kakšen bo rezultat izvajanja naslednje kode:

pythondef func(num1, *, num2, num3):
  return (num1 - num2) / num3
  
print(func(12, 4, num3=5))
Задание 3

Kakšen bo rezultat izvajanja naslednje kode:

pythondef func(*, name='user1', age='18'):
  return 'Username is ' + name + ' age is ' + age
  
print(func(name='john'))