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?


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.


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


49

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


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


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 .


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


1

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.