args / *kwargs#
courant
*args — arguments positionnels variables#
**kwargs — arguments nommés variables#
def config(**kwargs):
print(kwargs) # dict
config(hote="localhost", port=8080) # {'hote': 'localhost', 'port': 8080}
Combinaison#
def f(a, b, *args, c=0, **kwargs):
...
f(1, 2, 3, 4, c=5, d=6)
# a=1, b=2, args=(3, 4), c=5, kwargs={'d': 6}
Ordre obligatoire dans la signature : positionnels, *args, keyword-only, **kwargs.
Dépaquetage à l'appel#
def addition(a, b, c):
return a + b + c
valeurs = [1, 2, 3]
addition(*valeurs) # dépaquette la liste en 3 arguments positionnels
options = {"a": 1, "b": 2, "c": 3}
addition(**options) # dépaquette le dict en arguments nommés
Fusion de dictionnaires#
defauts = {"couleur": "bleu", "taille": "M"}
overrides = {"taille": "L"}
fusion = {**defauts, **overrides} # {'couleur': 'bleu', 'taille': 'L'}