Come passare piĆ¹ valori a una funzione in Python
Nel linguaggio Python il passaggio dei parametri a una funzione è molto semplice. Basta chiamare la funzione indicando tra parentesi gli argomenti (a,b) separati da una virgola.
- def funzione(c,d):
- print(c,d)
- return
- c=3
- d=4
- funzione(c,d)
La funzione riceve i parametri e li registra nelle variabili locali (c,d).
Il numero degli argomenti inviati deve coincidere con il numero degli argomenti ricevuti dalla funzione.
Attenzione. Se il numero degli argomenti inviata e ricevuti non coincide, l'interprete python va in errore.
E se non conosco il numero preciso degli argomenti da inviare alla funzione?
Può capitare che io non conosca il numero preciso degli argomenti da inviare o che sia variabile.
Questo problema si risolve facilmente con Python.
Mi basta anteporre il simbolo dell'asterisco * al nome dell'argomento in entrata.
Esempio
- def funzione(*nomevar):
- print(nomevar)
- return
- c=3
- d=4
- funzione(c,d)
In questo modo l'interprete python registra tutti i parametri inviati in una variabile tupla ossia in un array (vettore).
Posso inviargliene uno, due, tre, ecc. E' la stessa cosa. Funziona lo stesso e non va in errore.
La funzione riceve i dati in questa forma :
(3, 4)
Una volta ricevuti dentro la funzione mi basta scorporare i dati dall'array.
E per passare anche la denominazione oltre ai valori?
Per passare alla funzione sia la denominazione delle variabili che i valori, mi basta anteporre due asterischi ** davanti al nome della variabile locale.
Vanno messi solo sul parametro in ricezione della funzione e non su quelli inviati.
Esempio
- def funzione(**nomevar):
- print(nomevar)
- return
- funzione(c=3,d=4)
Anche in questo caso posso inviare un numero variabile di parametri. Uno, due, tre... E' lo stesso.
La funzione riceve le denominazioni e i valori.
Poi li registra in una variabile dizionario, senza andare in errore.
{'c': 3, 'd': 4}
Le denominazioni sono separate dai rispettivi valori dal simbolo dei due punti, mentre i gruppi di variabili sono separati da una virgola.
Una volta ricevuti posso scorporare le stringhe nel dizionario e separare i dati.
Così facendo ho passato alla funzione anche i nomi delle variabili oltre ai valori.
E così via.