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.

  1. def funzione(c,d):
  2. print(c,d)
  3. return
  4. c=3
  5. d=4
  6. 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.
un esempio di errore TypeError dovuto al numero degli argomenti ( 1 positional argument but 2 were given )

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

  1. def funzione(*nomevar):
  2. print(nomevar)
  3. return
  4. c=3
  5. d=4
  6. 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

  1. def funzione(**nomevar):
  2. print(nomevar)
  3. return
  4. 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.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Le funzioni in python