Ce sunt args și kwargs în Python

Ce sunt args și kwargs în Python

. sau cum să utilizați un număr variabil de argumente în Python

Pentru a obține răspunsul la întrebarea din antet, împărțiți-l în două părți:
  1. Ce sunt args și kwargs? (cel mai nerăbdător poate spiona răspunsul =))
  2. Ce înseamnă asteriscurile?
Să începem de la sfârșit. În Python, puteți trece ca argumente nu numai obiecte individuale, ci și colecții.

Notă: Dacă funcția este trecut o listă a membrilor săi ar trebui să urmeze cu strictețe condiționate de pre-comanda, sau, cu alte cuvinte, în pozițiile lor (altfel cum știm ce un anumit element al listei?). De exemplu, dacă funcția sign_up () ne așteaptă să afișăm [nume, vârstă, sex]. atunci trebuie să respectăm cu strictețe acest ordin; nu putem apela sign_up (vârstă, nume, sex). Astfel de argumente sunt numite anonime sau pozitive. Dacă dicționarul este trecut ca argument al funcției, atunci ordinea poate fi arbitrară, deoarece elementele din dicționar sunt transmise cu cheile, nu mai pot fi confundate. Astfel de argumente sunt numite numite.







Continuând exemplul din nota, vom nota lista noastră prin variabila: O variabilă da funcției: În acest caz, funcția percepută ca un argument nu este un singur obiect (o colecție sunt, de asemenea, obiecte și, în general tot în Python), și câteva, colecția trebuie să despacheta. Acesta este exact ceea ce fac vedetele. Înregistrările de acest tip (cu unul sau două asteriscuri) în Python sunt folosite în două cazuri: atunci când este apelat (așa cum am făcut-o) și când definim funcția.







* args și ** kwargs când se definește o funcție

Argumentele pentru o funcție în Python, notate cu * și ** atunci când definesc sau sunând, sunt un număr nedefinit de argumente poziționale sau numite. Foarte greu. De fapt, acestea sunt colecții - liste, tuple sau dicționare. Primele două argumente pozitive, dicționarele sunt numite argumente. Pentru a transfera funcții la mai multe argumente sub forma unei colecții, colecția trebuie să fie despachetată. Aceasta se face cu unu sau doi asteriscuri. Definim o funcție cu un argument formal (pozițional) și un număr nedefinit de argumente poziționale suplimentare (aici, două). O funcție cu argumente numite este specificată după cum urmează:

Deci, ce sunt args și kwargs.

Acum sunteți gata să învățați întregul adevăr despre acest lucru :)
Numele args și kwargs conform convenției nerostite sunt folosite în documentația Python. De fapt, nimeni nu interzice să ia alte nume de variabile valide. De exemplu, pentru dicționare, c ** kwargs folosește uneori ** opțiuni.

Aplicație * și ** când apelați o funcție

Acum, să vedem cum să apelam o funcție cu argumente poziționale (deja demonstrată mai sus). Există deja mai puțin sens în args și kwargs, ar fi mai bine să aleagă un nume mai descriptive (deși, în acest exemplu, noi nu sunt avansate până în prezent în acest =)): Argumentele poate fi trecut, și așa mai departe:
Următorul exemplu arată un apel la o funcție cu argumente numite:
Același lucru cu un literal:

concluzie

Deci, dacă rezumăm pe scurt cele de mai sus, atunci asteriscurile din Python sunt folosite în următoarele cazuri:

  1. La definirea unei funcții, dacă funcția are un număr nedefinit de argumente.
  2. Atunci când apelați o funcție, atunci când este necesar să transferați mai multe obiecte sub forma unei colecții. Notați nu obiectul de colectare, ci obiectele conținute în colecție. Astfel, notația * args și ** kwargs despachetează colecția și trec elementele sale la funcție.

Poate că te vei interesa







Articole similare

Trimiteți-le prietenilor: