Pozicionális vs. kulcsszavas argumentumok
Kapcsolódó cikk:
- Funkciók
- Funkció átadása argumentumként
- Szereplők a Pythonban
Transcript:
Beszéljünk a függvényhíváskor használható kétféle argumentumról:pozicionális argumentumok és megnevezett argumentumok (a.más néven kulcsszóargumentumok).
Pozicionális argumentumok
A beépített print
függvény hívásakor tetszőleges számú argumentumot adhatunk át pozicionálisan.mi itt négy pozicionális argumentumot adunk át:
>>> print(2, 1, 3, 4)2 1 3 4
Ezeket azért hívjuk pozicionális argumentumoknak, mert a pozíciójuk számít.Ezeknek az argumentumoknak a sorrendje jelentős: az első argumentumot írja ki először, az utolsót utoljára.
Kulcsszóargumentumok (más néven megnevezett argumentumok)
A print
függvény néhány argumentumot kulcsszóargumentumként is elfogad.
A print
függvény elfogad egy opcionális sep
argumentumot (ami alapértelmezés szerint egy szóköz karakter).
>>> print(2, 1, 3, 4, sep=' ')2 1 3 4>>> print(2, 1, 3, 4)2 1 3 4>>> print(2, 1, 3, 4, sep='-')2-1-3-4>>> print(2, 1, 3, 4, sep=', ')2, 1, 3, 4
Ez a sep
argumentum határozza meg a print
-nek adott pozicionális argumentumok között kiírandó elválasztójelet.
Ez egy opcionális end
kulcsszó argumentum is.Az end
argumentum alapértelmezés szerint egy újsor karakter:
>>> print(2, 1, 3, 4, sep=', ', end='\n')2, 1, 3, 4
De a end
argumentumba (az újsor előtt) tehetünk néhány felkiáltójelet, hogy a végén felkiáltójeleket írjunk ki:
>>> print(2, 1, 3, 4, sep=', ', end='!!\n')2, 1, 3, 4!!
A kulcsszó argumentumok sorrendje nem számít
Az print
függvény sep
és end
argumentumainak sorrendje valójában nem számít.
>>> print(2, 1, 3, 4, end='!!\n', sep=', ')2, 1, 3, 4!!
A sorrend ezeknél nem számít, mert ezek nem pozicionális argumentumok: megnevezett argumentumok.
A pozicionális argumentumok értékei között vessző van.
>>> print(2, 1, 3, 4)2 1 3 4
A kulcsszavas argumentumok (a.k.a. named arguments) az értékek és a vesszők mellett egy névvel és egy egyenlőségjellel is rendelkeznek.
>>> print(2, 1, 3, 4, sep=',', end='!\n')2,1,3,4!
A kulcsszavas argumentumoknak a pozicionális argumentumok után kell következniük.Ezen túlmenően a kulcsszavas argumentumok pozíciója egyáltalán nem számít: a név számít, nem a pozíció.
Kulcsszavas argumentumok használata a pozicionális argumentumok helyett
A kulcsszavas argumentumok nem csak olyan függvényeknél hasznosak, amelyek tetszőleges számú pozicionális argumentumot fogadnak el (mint print
).A Pythonban szinte bármilyen függvénynek átadhatunk kulcsszóargumentumokat.
A beépített sum
függvény például elfogad egy első argumentumot:
>>> sum()10
De elfogad egy második argumentumot is, ami alapértelmezés szerint nulla:
>>> sum(, 0)10
Ha ezt a második argumentumot 1
-re változtatjuk, akkor azt látjuk, hogy ez a visszaadott összegzés kezdőértéke:
>>> sum(, 1)11
Sokkal jobban szeretném, ha ezt a függvényt így hívnánk:
>>> sum(, start=1)11
Egy pozicionális és egy kulcsszavas argumentumot adunk át.
Ez a start=1
működik a sum
-vel, mert start
az argumentum neve.A sum
függvény dokumentációjában azt írja, hogy a második argumentum, amit -nek hívnak:
>>> help(sum)Help on built-in function sum in module builtins:sum(iterable, /, start=0) Return the sum of a 'start' value (default: 0) plus an iterable of numbers When the iterable is empty, return the start value. This function is intended specifically for use with numeric values and may reject non-numeric types.
Amikor tehát megnevezett argumentumokkal dolgozol (más néven kulcsszó argumentumokkal), akkor az argumentum neve számít!Míg amikor pozicionális argumentumokkal dolgozol, akkor a pozíció a fontos.
Összefoglaló
Mikor Pythonban meghívunk egy függvényt, kétféle argumentumot adhatunk át:
- helyzeti argumentumok
- megnevezett argumentumok (a.k.a. kulcsszavas argumentumok)
A megnevezett argumentumok néha kicsit szemléletesebbé tehetik a kódot, mert nevet adtunk egy olyan objektumnak, amelynek a használata egyébként nem lenne egyértelmű pusztán a függvényhívásban elfoglalt helye alapján.
Még több Python témát szeretne megismerni magyarázva?
Hello kedves weblátogató! 👋
Ez az oldal a Python Morsels, egy online Python készségfejlesztő szolgáltatás része.
A legjobb módja a tanulásnak, ha csináljuk. A Python esetében ez Python kód írását jelenti. Ha szeretnéd minden héten fejleszteni Python-képességeidet, próbáld ki a Python Morsels szolgáltatást az alábbi e-mail címed megadásával, hogy létrehozz egy fiókot.
A Python Morsels témaoldalai ingyenesek, és az első havi gyakorlatok is ingyenesek. A regisztrációhoz nem kell megadnia a fizetési adatokat.
Számos más Python témakör magyarázatát is megtalálod, ha alább regisztrálsz.
A regisztrációval elfogadja az Adatvédelmi szabályzatot.