Come risolvere il problema: errore di sintassi: l'argomento posizionale segue l'argomento della parola chiave


Un errore che potresti riscontrare in Python è:

 SyntaxError : positional argument follows keyword argument

Questo errore si verifica quando si utilizza un argomento posizionale in una funzione dopo aver utilizzato un argomento con parola chiave .

Ecco la differenza tra i due:

Gli argomenti posizionali sono quelli che non hanno una “parola chiave” davanti a sé.

  • Esempio: mia_funzione(2, 2)

Gli argomenti relativi alle parole chiave sono quelli che hanno una “parola chiave” davanti a loro.

  • Esempio: mia_funzione(a=2, b=2)

Se usi un argomento posizionale dopo un argomento con parola chiave, Python genererà un errore.

  • Esempio: mia_funzione(a=2, 2)

L’esempio seguente mostra come può verificarsi nella pratica questo errore.

Esempio: un argomento posizionale segue un argomento con parola chiave

Supponiamo di avere la seguente funzione in Python che moltiplica due valori e poi li divide per un terzo:

 def do_stuff (a,b):
return a*b/c

I seguenti esempi mostrano modi validi e non validi per utilizzare questa funzione:

Modo valido n. 1: tutti gli argomenti posizionali

Il codice seguente mostra come utilizzare la nostra funzione con tutti gli argomenti posizionali:

 do_stuff ( 4,10,5 )

8.0

Non vengono generati errori perché Python sa esattamente quali valori utilizzare per ciascun argomento della funzione.

Metodo valido n. 2: tutti gli argomenti delle parole chiave

Il codice seguente mostra come utilizzare la nostra funzione con tutti gli argomenti di parole chiave:

 do_stuff(a= 4 , b= 10 , c= 5 )

8.0

Ancora una volta, non vengono generati errori perché Python sa esattamente quali valori utilizzare per ciascun argomento della funzione.

Metodo valido n. 3: argomenti posizionali prima degli argomenti con parole chiave

Il codice seguente mostra come utilizzare la nostra funzione con argomenti posizionali utilizzati prima degli argomenti di parole chiave:

 do_stuff( 4 ,b= 10 ,c= 5 )

8.0

Non viene generato alcun errore perché Python sa che il valore 4 dovrebbe essere assegnato all’argomento an .

Modo non valido: argomenti posizionali dopo gli argomenti delle parole chiave

Il codice seguente mostra come possiamo tentare di utilizzare la funzione con argomenti posizionali utilizzati dopo gli argomenti della parola chiave:

 do_stuff(a= 4 , 10 , 5 )

SyntaxError : positional argument follows keyword argument

Viene generato un errore perché abbiamo utilizzato argomenti posizionali dopo gli argomenti delle parole chiave.

Nello specifico, Python non sa se agli argomenti b o c devono essere assegnati i valori 10 e 5 , quindi non è in grado di eseguire la funzione.

Risorse addizionali

I seguenti tutorial spiegano come correggere altri errori comuni in Python:

Come correggere l’errore chiave nei Panda
Come risolvere il problema: ValueError: impossibile convertire float NaN in int
Come risolvere il problema: ValueError: non è stato possibile trasmettere gli operandi con le forme

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *