C’est l’équivalent de APPLY en Lisp :
[code]# en Python
fonction(arg1, arg2, arg3)
équivalent à
fonction(*[arg1, arg2, arg3])
; en Lisp
(fonction arg1 arg2 arg3)
; équivalent à
(apply #'fonction (list arg1 arg2 arg3))[/code]
Tout l’intérêt c’est évidemment d’avoir la liste d’arguments dans une variable, ce qui permet d’avoir un nombre d’arguments variable au moment de l’exécution.
Dans le cas que limax nous soumet c’est plus du sucre syntaxique qu’autre chose, histoire de pas indexer les arguments par soi-même (fonctionnellement ça ne change rien du tout). Par contre si la chaîne de format est elle-aussi variable, là ça reprend tout son intérêt (sélectionner dynamiquement la chaîne de format, entasser les arguments dans une liste, appliquer les arguments dynamiquement).
[/quote]
Pour compléter, il existe aussi l’éclatement des paires clé/valeur d’un dictionnaire avec ‘**’ pour exploiter les paramètres nommés par exemple :
[code]>>> def test(a, b):
… print(“a={}, b={}”.format(a, b))
…
test(**{‘a’: True, ‘b’: False})
a=True, b=False[/code]