A Python-függvények háromféle argumentumot fogadhatnak el: standard, változó (*args) és kulcsszó (**kwargs). A szabványos argumentumok a legegyszerűbbek, de korlátozott a funkcionalitásuk. Másrészt az *args és a **kwargs lehetővé teszi a függvények rugalmasabbá tételét változó számú bemenet elfogadásával.

A választott argumentumátadás típusa függ a függvény természetétől és az Ön által preferált programozási stílustól.

Alapvető funkciók a Pythonban

Ahhoz, hogy megértsük, hogyan működik a két változó argumentum a Python-függvényekben, alapvetően fontos megérteni, hogy miért léteznek. Egy egyszerű függvény meghatározott számú névtelen argumentumot deklarál, például:

defaddnum(a, b, c):
Visszatérés a + b + c

Ez a funkció jól működik, de van még mit javítani. A legnagyobb probléma az, hogy csak két argumentumot kezel, így csak két számot tud összeadni. Mi van, ha két vagy négy számot szeretne hozzáadni? Ez a funkció nem teszi lehetővé ezt. Több vagy kevesebb argumentum átadása, mint amennyit a függvény elfogad, TypeError-hoz vezet.

instagram viewer

Természetesen több függvényt is létrehozhat különböző számú argumentum elfogadásához. De ez kényelmetlen, és egyáltalán nem skálázható jól. Ezenkívül minden alkalommal új függvényt kell létrehoznia, amikor új számú bemenetet szeretne kezelni.

Itt jönnek be a változó argumentumok és a kulcsszó argumentumok. Az *args és **kwargs segítségével rugalmas függvényeket definiálhat, amelyek változó számú bemenetet vehetnek fel.

Mi az *args a Pythonban?

Az *args alapötlete a Pythonban az, hogy lehetővé tegye változó számú bemenet átadását a függvénynek. Ez különféle alkalmazásokban jól jön. Például gondoljon egy számológépre, ahol lehetőséget szeretne adni a felhasználónak két vagy több szám összeadására és az összeg visszaadására.

Vegye figyelembe, hogy az args csak egy változónév; a * a fontos. Bármilyen érvényes nevet használhat a változó argumentumához, feltéve, hogy szerepel a *.

Hogyan kell használni az *args

Az addnum függvényt úgy módosíthatja, hogy változó számú bemenetet vegyen fel az alábbiak szerint:

defaddnum(*args):
összesen = 0

számára sz ban ben args:
összesen = összesen + szm

Visszatérés teljes

A fenti kódrészlet for ciklust használ a mellékelt bemeneteken keresztül történő iterációhoz.

Ezután meghívhatja az addnum függvényt változó argumentumokkal, és hiba nélkül fog működni:

nyomtatás(addnum(10, 1, 12, 12, 4, 54, 5)) ## 98-at ad vissza
nyomtatás(addnum(14, 54, 5)) # 73-at ad vissza
nyomtatás(addnum(10, 5)) # 15-öt ad vissza

Mi az a **kwargs a Pythonban?

Míg az *args és a **kwargs is lehetővé teszi, hogy változó számú bemenetet adjunk át a függvényeknek, ez utóbbi jellemző a kulcsszó argumentumaira. Ha nem tudja, a kulcsszó argumentumok csak fantázianevek a névvel rendelkező argumentumoknak.

A **kwargs másik különlegessége, hogy a Python szótárként képviseli az értéket.

A **kwargs használata

Az *argshoz hasonlóan a kettős csillag a fontos bit; paraméternévként bármilyen szót használhat. Íme egy példa a **kwargs használatára Pythonban:

defheti_látogatás(**hétköznapok):
résztvevők összesen = 0

számárarésztvevőkban benhétköznapok.értékek():
total_attendees = résztvevők összesen + résztvevők

Visszatérés összesen_résztvevők

nyomtatás(weekly_attendance (hétfő = 265, kedd = 698, szerda = 365, csütörtök = 463, péntek = 234)) # visszatér 2025
nyomtatás(weekly_attendance (hétfő = 265, péntek = 234)) # 499-et ad vissza
nyomtatás(weekly_attendance (szerda = 365, csütörtök = 463, péntek = 234)) # 1062-t ad vissza

A fenti kódrészlet is for ciklust használ, de ezúttal a Python beépített értékek() metódusával. Ez a metódus a szótár összes értékének nézetobjektumát adja vissza. A Values() metódus lehetővé teszi végigpörget egy Python szótárt gond nélkül.

Használjon változó argumentumokat, hogy rugalmassá tegye Python-függvényeit

A függvényargumentumok hasznosak, de néhány függvény számára előnyös lehet változó számú argumentum elfogadása. A megnevezett kulcsszóargumentumok olvashatóbbá és könnyebben használhatóvá tehetik a kódot. Fogadd el a Python *args és **kwargs argumentumait. Használatuk meglehetősen egyszerű, és rugalmasabbá teheti funkcióit és programjait.

A fenti lépések és kódrészletek követésével reméljük, hogy mostantól változó kulcsszavas és nem kulcsszavas argumentumokat is használhat függvényeihez.