Paraméterek kombinálása Pythonban
Ugyanabba a függvénybe egyszerre lehet
névvel ellátott és pozíciós paramétereket
átadni.
Ezt a * szimbólum segítségével tehetjük meg,
ami azt jelöli, hogy a tőle jobbra megadott paramétereket
névvel ellátottnak kell tekinteni,
ha azok alapértelmezett értékeit nem kell
használni.
Készítsünk egy függvényt, amely
kiírja az összes paramétert a konzolra. A
data változó egy közönséges
pozíciós paramétert fog jelölni. Ezután a
* szimbólum után két start
és end változó van megadva
alapértelmezett értékekkel.
Azonban a függvény hívásakor ezeket a
változókat névvel ellátottá tesszük:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
A kód végrehajtásának eredménye:
1 2 3
Ha viszont eltávolítjuk a start változó
alapértelmezett értékét és ugyanakkor névvel ellátott paraméterként is elhagyjuk, akkor hibát kapunk.
Ez azért történik, mert a * szimbólum
már névvel ellátott változóként határozta meg a start-ot:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # hibát fog kiírni
Mi lesz a következő kód végrehajtásának eredménye:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
Mi lesz a következő kód végrehajtásának eredménye:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
Mi lesz a következő kód végrehajtásának eredménye:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))