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