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