Voici quelques informations supplémentaires pour compléter les informations de @Nazime Lakehal. excellente réponse .
Un paramètre positionnel facultatif ne peut être suivi d'un paramètre positionnel ou d'un paramètre positionnel ou mot-clé obligatoire :
# SyntaxError.
def f(a=1, b, /):
pass
# SyntaxError.
def f(a=1, /, b):
pass
Un paramètre de type positionnel ou mot-clé facultatif ne peut être suivi d'un paramètre de type positionnel ou mot-clé obligatoire :
# SyntaxError.
def f(a=1, b):
pass
Pour lier un paramètre positionnel facultatif, tous les paramètres positionnels précédents qui sont facultatifs doivent être liés, ce qui les rend tous obligatoires. C'est peut-être là l'origine de la confusion entre les paramètres positionnels et les paramètres obligatoires :
def f(a=1, b=2, /):
pass
f(1, 0)
Pour lier un paramètre de mot-clé ou un paramètre de mot-clé ou de position qui est facultatif, tous les autres paramètres de mot-clé et de mot-clé ou de position qui sont facultatifs ne doivent pas être liés. C'est peut-être l'origine de la confusion entre les paramètres de mot-clé et les paramètres optionnels :
def f(c=3, *, a=1, b=2):
pass
f(b=0)
def f(a=1, b=2, *, c=3):
pass
f(b=0)