Python-funktio voi hyväksyä kolmenlaisia ​​argumentteja: standardi, muuttuja (*args) ja avainsana (**kwargs). Vakioargumentit ovat yksinkertaisimpia, mutta niillä on rajoitettu toiminnallisuus. Toisaalta *args ja **kwargs antavat sinun tehdä funktioistasi joustavampia hyväksymällä muuttuvan määrän syötteitä.

Valitsemasi argumenttien välityksen tyyppi riippuu funktiosi luonteesta ja omasta ohjelmointityylistäsi.

Pythonin perustoiminnot

Python-funktioiden kahden muuttujaargumentin toiminnan ymmärtämiseksi on tärkeää ymmärtää, miksi ne ylipäätään ovat olemassa. Yksinkertainen funktio ilmoittaa kiinteän määrän anonyymejä argumentteja, kuten:

deflisäys(a, b, c):
palata a + b + c

Tämä toiminto toimii hyvin, mutta parantamisen varaa on. Suurin ongelma on, että se käsittelee vain kaksi argumenttia, joten se voi laskea yhteen vain kaksi numeroa. Entä jos haluat lisätä kaksi tai neljä numeroa? Tämä toiminto ei salli sinun tehdä niin. Enemmän tai vähemmän argumentteja kuin funktio hyväksyy, aiheuttaa TypeError.

Voit tietysti luoda lisää toimintoja hyväksyäksesi eri määrän argumentteja. Mutta se on hankalaa eikä skaalaudu ollenkaan hyvin. Sinun on myös luotava uusi toiminto aina, kun haluat käsitellä uutta määrää syötteitä.

Siellä muuttuvat argumentit ja avainsanaargumentit tulevat käyttöön. Käyttämällä *args- ja **kwargs-funktioita voit määrittää joustavia funktioita, jotka voivat ottaa vaihtelevan määrän syötteitä.

Mikä on *args Pythonissa?

Pythonin *args: n pääidea on antaa sinun välittää vaihteleva määrä syötteitä funktiollesi. Tästä on hyötyä erilaisissa sovelluksissa. Ajattele esimerkiksi laskinohjelmaa, jossa haluat antaa käyttäjälle mahdollisuuden lisätä kaksi tai useampia lukuja ja palauttaa summa.

Huomaa, että args on vain muuttujan nimi; se * on tärkeä. Voit käyttää mitä tahansa kelvollista nimeä muuttujan argumentille, kunhan sisällytät *.

Kuinka käyttää *args

Voit muokata addnum-funktiota ottamaan muuttuvan määrän syötteitä seuraavasti:

deflisäys(*args):
yhteensä = 0

varten nro sisään args:
yhteensä = yhteensä + kpl

palata kaikki yhteensä

Yllä oleva koodinpätkä käyttää for-silmukkaa iteroida mukana toimitettujen tulojen kautta.

Voit sitten kutsua addnum-funktiota muuttuvilla argumenteilla ja se toimii ilman virhettä:

Tulosta(lisänumero(10, 1, 12, 12, 4, 54, 5)) ## palauttaa 98
Tulosta(lisänumero(14, 54, 5)) # palauttaa 73
Tulosta(lisänumero(10, 5)) # palauttaa 15

Mikä on **kwargs Pythonissa?

Vaikka sekä *args että **kwargs antavat meille mahdollisuuden välittää vaihtelevan määrän syötteitä funktioille, jälkimmäinen on ominaista avainsanaargumenteille. Jos et tiedä, avainsanaargumentit ovat vain kuvitteellisia nimiä argumenteille, joissa on nimi.

Toinen ainutlaatuinen asia **kwargsissa on, että Python edustaa arvoa sanakirjana.

Kuinka käyttää **kwargsia

Kuten *args, kaksoistähti on tärkeä bitti; voit käyttää mitä tahansa sanaa parametrin nimenä. Tässä on esimerkki **kwargin käytöstä Pythonissa:

defviikoittainen_osallistuminen(**arkisin):
osallistujia yhteensä = 0

vartenosallistujatsisäänarkisin.arvot():
total_attendees = yhteensä_osallistujat + osallistujat

palata osallistujat yhteensä

Tulosta(weekly_attendance (maanantai = 265, tiistai = 698, keskiviikko = 365, torstai = 463, perjantai = 234)) #palauttaa 2025
Tulosta(weekly_attendance (maanantai = 265, perjantai = 234)) # palauttaa 499
Tulosta(weekly_attendance (keskiviikko = 365, torstai = 463, perjantai = 234)) # palauttaa 1062

Yllä oleva koodinpätkä käyttää myös for-silmukkaa, mutta tällä kertaa Pythonin sisäänrakennetulla Values()-metodilla. Tämä menetelmä palauttaa näkymäobjektin kaikista sanakirjan arvoista. Values()-menetelmä mahdollistaa sen kiertää Python-sanakirjaa ilman vaivaa.

Käytä muuttuvia argumentteja tehdäksesi Python-funktioistasi joustavia

Funktioargumentit ovat käteviä, mutta jotkin funktiot voivat hyötyä vaihtelevan määrän argumentteja hyväksymisestä. Nimetyt avainsanaargumentit voivat tehdä koodistasi luettavamman ja helpompi käyttää. Sinun tulisi hyväksyä Pythonin *args- ja **kwargs-argumentit. Ne ovat melko yksinkertaisia ​​käyttää, ja niiden avulla voit tehdä toiminnoistasi ja ohjelmistasi joustavampia.

Noudattamalla yllä olevia ohjeita ja koodinpätkiä toivomme, että voit nyt käyttää muuttuvia avainsana- ja ei-avainsanaargumentteja funktioissasi.