Essendo una delle sintassi più uniche in Python, *args
ci darà molta flessibilità e comodità durante la programmazione. Direi che riflettono ciò che è “Pythonic” e lo Zen di Python.
Tuttavia, ho scoperto che sono difficili da comprendere per gli studenti. In questo articolo, farò del mio meglio per spiegare questo concetto iconico in Python e fornire casi d’uso pratici basati sulle mie conoscenze. Spero che ti aiuterà a capirlo meglio.
*args
sta per “argomenti”. Ci permette di passare qualsiasi numero di argomenti posizionali (spiegherà più avanti) ad una funzione. All’interno della funzione possiamo ottenere tutti gli argomenti posizionali in una tupla. Quindi possiamo fare qualunque cosa con la tupla di argomenti nella funzione.
Ecco un semplice esempio di *args
.
def add_up(*numbers):
result = 0
for num in numbers:
result += num
return resultprint(add_up(1, 2, 3))
Quando lo chiamiamo add_up()
funzione, le abbiamo passato tre argomenti posizionali. In Python, se non specifichiamo i nomi degli argomenti, questi verranno trattati come argomenti posizionali. Questi argomenti sono determinati in base alla loro posizione, quindi sono chiamati argomenti posizionali.
Nell’esempio precedente, tutti gli argomenti posizionali 1, 2, 3
sono stati passati alla funzione e “catturati” dal *numbers
parametro. Quindi, possiamo accedere a tutti questi argomenti da questo parametro numbers
. L’asterisco *
dice semplicemente a Python che questo è un file *args
parametro di tipo. Successivamente, un semplice ciclo for somma tutti gli argomenti e stampa il risultato.
La bellezza di *arg
come accennato in precedenza, è che può accettare un numero qualsiasi di argomenti posizionali. Pertanto, possiamo presentare più argomenti se necessario.
print(add_up(1, 2, 3, 4))
Qui possiamo verificare se la variabile numbers
è una tupla aggiungendo una riga alla funzione originale.
def add_up(*numbers)…
Fonte: towardsdatascience.com