**kwargs

Les arguments nommés en trop sont collectés dans un dictionnaire. Lis-les avec .get(key, default).

Syntaxe

def greet(name, **opts):
return opts.get("title", "bot") + " " + name
  • **opts ne collecte que les valeurs nommées, pas les positionnelles.

Exemple

def greet(name, **opts):
    return opts.get("title", "bot") + " " + name

print(greet("Pip"))
print(greet("Pip", title="captain"))

Sortie :

bot Pip
captain Pip

Erreurs courantes

  • Passer un second argument positionnel à une fonction qui n'a que **opts pour les extras est un TypeError.

Pratiquer