Sia Python *args che **kwargs ti permettono di passare un numero variabile di argomenti in una funzione. Gli argomenti *args non hanno parole chiave mentre gli argomenti **kwargs sono associati a una parola chiave.
Tradizionalmente, quando lavori con le funzioni in Python, devi indicare direttamente gli argomenti della funzione accetterà.
In alcuni casi, in cui potresti voler accettare più argomenti in futuro, non è pratico indicare direttamente tutti i parametri che desideri utilizzare con una funzione.
Ecco dove entrano in gioco le parole chiave Python *args e **kwargs. Queste parole chiave ti consentono di passare un numero indefinito di argomenti a una funzione.
Questo tutorial discuterà, con riferimento ad esempi, le basi delle parole chiave *args e **kwargs in Python, e come si confrontano.
Python *args
Il metodo Python *args rappresenta un numero variabile di argomenti. Ti consente di passare argomenti a una funzione quando non sei sicuro di quanti argomenti vuoi passare.
Il termine "args" è un segnaposto. Nella tua funzione, puoi sostituire il nome di "args" con qualsiasi valore. Potresti usare "numeri" per rappresentare un elenco di numeri o "studente" per rappresentare uno studente‚Äô dettagli.
La sintassi per il metodo *args è:
L’81% dei partecipanti ha dichiarato di sentirsi più sicuro delle proprie prospettive di lavoro nel settore tecnologico dopo aver partecipato a un bootcamp. Fatti abbinare a un bootcamp oggi.
Il laureato medio del bootcamp ha trascorso meno di sei mesi nella transizione di carriera, dall’avvio di un bootcamp alla ricerca del primo lavoro.
Questa funzione accetta un numero variabile di argomenti. Quindi, potremmo passare zero argomenti, un argomento, due argomenti e cosi via. La nostra funzione stampa sulla console ogni argomento che passiamo alla nostra funzione.
Il valore dopo l’asterisco, "numeri" rappresenta i nostri argomenti.
La parola chiave args è utile se stai eseguendo operazioni matematiche, ad esempio se vuoi sommare una quantità variabile di numeri.
*args Python Esempio
Scriviamo un programma che somma i valori di più argomenti. Questo ci consente di eseguire una somma matematica senza dover utilizzare un segno più per ogni valore che vogliamo aggiungere.
Ecco un esempio di una funzione in grado di sommare più argomenti:
Il nostro codice restituisce:
Per prima cosa, dichiariamo una funzione Python chiamata addNumbers(), che contiene il codice per il nostro programma per l’aggiunta di numeri. Questa funzione ha un argomento specificato: *args.
La parola chiave *args viene utilizzata per rappresentare un numero variabile di potenziali argomenti che possono essere passati alla funzione.
Quindi, dichiariamo una variabile Python chiamata totale che tiene traccia del numero totale che stiamo aggiungendo. Inizialmente, questa variabile è impostata su 0.
Utilizziamo un ciclo for per esaminare ogni argomento nella parola chiave args e aggiungiamo ogni numero al totale. Nota che quando fai riferimento agli argomenti archiviati in *args, utilizzi il comando "args" parola chiave. Successivamente, stampiamo il numero totale calcolato dal nostro programma.
Nel nostro programma principale, chiamiamo il metodo addNumbers() due volte. Quando chiamiamo per la prima volta la funzione, specifichiamo tre numeri che vogliamo che la nostra funzione sommi insieme. La prossima volta che chiamiamo la funzione, specifichiamo quattro numeri che vogliamo che la nostra funzione sommi insieme.
Poiché abbiamo usato *args, possiamo inviare un numero illimitato di argomenti alla nostra funzione. Il nostro programma funziona indipendentemente dal numero di argomenti che passiamo.
Python **kwargs
La parola chiave **kwargs rappresenta un numero arbitrario di argomenti passati a una funzione. **Le parole chiave kwargs sono memorizzate in un dizionario. Puoi accedere a ciascun elemento facendo riferimento alla parola chiave che hai associato a un argomento quando hai passato l’argomento.
La sintassi per **kwargs è:
Questo codice ci consente di passare un numero variabile di argomenti di parole chiave nella nostra funzione. Il nome **kwargs è solo un sostituto. Puoi sostituire "kwargs" con qualsiasi termine desideri.
Usiamo il nome dopo l’asterisco come etichetta per i nostri argomenti delle parole chiave. In questo caso, la nostra etichetta è "record". I valori in un metodo **kwargs sono archiviati in coppie chiave-valore. Questo è il motivo per cui dobbiamo usare items() per scorrere tutti gli argomenti che abbiamo passato alla nostra funzione.