nom propre pour l'opérateur python *?

210

Quel est le nom correct de l'opérateur *, comme dans function(*args)? déballer, décompresser, autre chose?

Anycorn
la source
9
Javascript a l' opérateur de propagation équivalent ....
Wolfgang Kuehn

Réponses:

170

Dans Ruby et Perl 6, cela a été appelé "splat", et je pense que la plupart des gens de ces communautés comprendront ce que vous voulez dire si vous l'appelez ainsi.

Le didacticiel Python utilise l'expression "décompresser les listes d'arguments", qui est longue et descriptive. Je n'ai pas entendu d'autre nom particulier en Python.

éphémère
la source
90
jamais entendu / vu "splat" en 10 ans d'utilisation de python.
Joe Koberg
8
Eh bien, en python, il est également utilisé pour emballer des listes d'arguments, donc dans ce contexte, devrait-il être appelé unsplat ? :)
John La Rooy
45
@ THC4k je propose splatsplat.
Josh Lee
5
Malheureusement INTERCAL n'a pas *d'opérateur donc il nous manque une source officielle ...
wberry
3
En JavaScript (es2015), il est connu comme l' opérateur de propagation .
Kutyel
119

Je l'appelle «expansion positionnelle», par opposition à **ce que j'appelle «expansion de mots clés».

Ignacio Vazquez-Abrams
la source
49

Le didacticiel Python l' appelle simplement «l' *opérateur». Il effectue le déballage des listes d'arguments arbitraires .

Danilo Piazzalunga
la source
1
C'est la réponse la plus précise et c'est dommage qu'elle n'ait pas été acceptée!
alfasin
3
@alfasin: L'expression 'the *-operator' est ambiguë car *- selon le contexte - peut effectuer soit une expansion d'argument soit une multiplication qui sont deux opérations différentes.
HelloGoodbye
1
@HelloGoodbye et ce n'est vraiment pas difficile de comprendre lequel c'est à partir du contexte dans lequel il se trouve.
Alfasin
On dirait que l'OP demandait comment prononcer (qui peut ou non être un mot lui-même - c'est un autre trou de lapin) *. En disant que c'est le, *-operatorc'est simplement rejeter la question comme réponse. OP voulait probablement savoir comment le dire à haute voix (ou dans sa tête) quand il le rencontrait. C'est tout nouveau pour moi, et j'irai avec "splat!".
elPastor
17

Je dis "star-args" et les gens de Python semblent savoir ce que je veux dire.

**est plus délicat - je pense juste "qargs" car il est généralement utilisé comme **kwou**kwargs

John La Rooy
la source
2
Je dis aussi juste kwargs, bien que cela ne fasse pas vraiment référence à l'opérateur lui-même, je suppose.
TM.
14

On peut également appeler *un paramètre de collecte (lorsqu'il est utilisé dans la définition des arguments de fonction) ou un opérateur scatter (lorsqu'il est utilisé lors de l'invocation de la fonction).

Comme vu ici: pensez aux tuples d'argument Python / Tuples / Variable-length .

Anton Strogonoff
la source
1
mais vous ne pouvez pas crier rassembler ou disperser comme vous pouvez avec SPLAT: D
Samantha Branham
@SamanthaBranham J'aime la façon dont la collecte et la diffusion peuvent être facilement et distinctement visualisées. Bien sûr, Splat visualise aussi bien 😂💥
Anton Strogonoff
7

Je crois qu'il est plus communément appelé «opérateur splat». Déballer les arguments est ce qu'il fait.

Mandrin
la source
1

J'appelle * args "star args" ou "varargs" et ** kwargs "mot clé args".

wberry
la source