Je trouve * utile lorsque j'écris une fonction qui prend une autre fonction de rappel comme paramètre :
def some_function(parm1, parm2, callback, *callback_args):
a = 1
b = 2
...
callback(a, b, *callback_args)
...
De cette façon, les appelants peuvent passer des paramètres supplémentaires arbitraires qui seront transmis à leur fonction de rappel. L'avantage est que la fonction de rappel peut utiliser des paramètres de fonction normaux. C'est-à-dire qu'elle n'a pas besoin d'utiliser la syntaxe * du tout. Voici un exemple :
def my_callback_function(a, b, x, y, z):
...
x = 5
y = 6
z = 7
some_function('parm1', 'parm2', my_callback_function, x, y, z)
Bien entendu, les fermetures offrent un autre moyen de faire la même chose sans vous obliger à faire passer x, y et z par some_function() et dans my_callback_function().
1 votes
Voir aussi stackoverflow.com/questions/14301967/ pour un astérisque nu
0 votes
S'agit-il toujours d'un doublon ? La question référencée concerne spécifiquement les paramètres des fonctions, alors que cette question (du moins d'après son titre) couvrirait également une syntaxe telle que
[*my_dict]