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ä = 0varten 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ä = 0vartenosallistujatsisäänarkisin.arvot():
total_attendees = yhteensä_osallistujat + osallistujatpalata 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.