Pozicionális vs. kulcsszavas argumentumok

máj 16, 2021
admin

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:

  1. helyzeti argumentumok
  2. 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.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.