Lo scopo di * e ** in Python
-
La definizione di
*
in Python -
La definizione di
**
in Python -
gli usi di
*
e**
nelle chiamate di funzione in Python
Questo articolo spiega lo scopo di *
e **
in Python.
In Python, usiamo il singolo asterisco (*
) e il doppio asterisco (**
) per indicare un numero variabile di argomenti.
Possiamo passare qualsiasi numero di argomenti in una funzione Python in uno dei seguenti modi.
- Argomenti posizionali (
*
) - Argomenti delle parole chiave (
**
)
La definizione di *
in Python
Usa il simbolo *
in Python per consentire un numero variabile di argomenti/parametri posizionali alla funzione.
Segui l’esempio qui sotto.
def function_singleasterix(*someargs):
for i in someargs:
print(i)
Ora, il codice del driver, con list
o tuple
è il seguente.
listdata = ["Alex", "Tom", "John", "Alice"]
function_singleasterix(listdata)
Produzione:
['Alex', 'Tom', 'John', 'Alice']
Usa argomenti solo posizionali se non vuoi che gli utenti conoscano il nome dei parametri.
Ad esempio, è consigliabile utilizzare variabili solo posizionali nelle API: questo evita interruzioni in caso di modifiche all’API se il nome del parametro viene modificato.
La definizione di **
in Python
Usa il simbolo **
in Python per consentire un numero variabile di argomenti/parametri di parole chiave alla funzione. Si noti che l’argomento dopo deve essere un elemento di mappatura (coppia chiave-valore del dizionario), non una tupla o un elenco.
Segui il codice di esempio qui sotto.
def function_doubleasterix(**keywordargs):
print("The keys in the kwargs dicionary are -", keywordargs.keys())
print("The values in the kwargs dicionary are -", keywordargs.values())
print("--The key value assignment in the 'keywordargs' dictionary are as follows--")
for key, value in keywordargs.items():
print("%s == %s" % (key, value))
Nell’esempio sopra, keywordargs
è associato a un dizionario
come nel programma sottostante.
function_doubleasterix(SNo001="Alex", SNo002="Tom")
Produzione:
The keys in the 'keywordargs' dicionary are - dict_keys(['SNo001', 'SNo002'])
The values in the 'keywordargs' dicionary are - dict_values(['Alex', 'Tom'])
--The key value assignment in the 'keywordargs' dictionary are as follows--
SNo001 == Alex
SNo002 == Tom
Nell’esempio sopra, **keywordargs
fornisce argomenti di parole chiave come coppie chiave-valore del dizionario
.
gli usi di *
e **
nelle chiamate di funzione in Python
I simboli *
e **
vengono utilizzati anche nelle chiamate di funzione. Usali per passare un numero variabile di argomenti a una funzione usando uno dei seguenti.
- una lista -
*
- una tupla -
*
- un dizionario -
**
Ecco alcuni esempi che puoi seguire.
Chiama la funzione con una variabile lista
come input. Usa *
come segue
varlist = ["Tom", "John", "Alice"]
functiondef(*varlist)
Chiama la funzione con una variabile dizionario
come input. Usa **
come segue
vardict = {"a": "Tom", "b": "John", "c": "Alice"}
functiondef(**vardict)
Chiama la funzione con una variabile tuple
come input. Usa *
come segue
vartuple = ("Tom", "John", "Alice")
functiondef(*vartuple)
L’output per tutti i casi precedenti è:
SNo1 = Tom
SNo2 = John
SNo3 = Alice