*args et **kwargs
*args
Transforme les arguments supplémentaires en un tuple ordonné
def f(text, *l):
print(text, l)
f("numbers :", 1,2,3,4) # numbers : (1,2,3,4)
**kwargs
Acronyme de Keyword arguments
Accepte les arguments nommés et les ajoutent à un dictionnaire
def f(**shopping_list):
print("Shopping list:")
for product,quantity in shopping_list.items():
print("\t-", product, quantity)
f(banana=5, apple=2, onion=1)
# Shopping list:
# - banana 5
# - apple 2
# - onion 1
Bien sûr il est possible d'utiliser en même temps *args et **kwargs
C'est une fonctionnalité très utile et utilisé dans beaucoup de fonctions builtins.
Certains paramètres sont "cachés" et pourraient vous intéresser donc renseignez vous.