262 votes

nom correct pour l'opérateur python * ?

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

15 votes

Javascript a l'équivalent spread ... opérateur.

0 votes

Pour mémoire, en C++, il s'agit de l'opérateur de déréférencement (ref : cplusplus.com/doc/tutorial/pointeurs ). De plus, en Python, toutes les variables des fonctions (arguments) sont transmises par affectation. (réf : docs.python.org/3/faq/ )

0 votes

@CloudCho Celui en C++ représente quelque chose de complètement différent.

231voto

ephemient Points 87003

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

El Tutoriel Python utilise l'expression "déballer les listes d'arguments", qui est longue et descriptive.

Il est également appelé déballage itérable ou dans le cas de ** , déballage du dictionnaire .

114 votes

Je n'ai jamais vu ni entendu parler de "splat" en 10 ans d'utilisation de Python.

11 votes

Eh bien, en python, il est également utilisé pour paquet des listes d'arguments, donc dans ce contexte, il devrait être appelé désassembler ? :)

52 votes

@THC4k Je propose splatsplat .

129voto

Je l'appelle "expansion positionnelle", par opposition à ** que j'appelle "expansion de mots-clés".

55voto

Danilo Piazzalunga Points 3248

El Tutoriel Python l'appelle simplement "le * -opérateur'. Il effectue le déballage de listes d'arguments arbitraires .

1 votes

C'est la réponse la plus précise et c'est dommage qu'elle n'ait pas été acceptée !

5 votes

@alfasin : L'expression "le * -L'expression "opérateur" est ambiguë car * - selon le contexte - peut effectuer une expansion ou une multiplication des arguments, qui sont deux opérations différentes.

1 votes

@HelloGoodbye et il n'est vraiment pas difficile de comprendre de laquelle il s'agit à partir du contexte dans lequel elle se trouve.

18voto

gnibbler Points 103484

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

** est plus délicat - je pense juste "qargs" puisqu'il est généralement utilisé en tant que **kw o **kwargs

2 votes

Je dis aussi juste kwargs bien que cela ne fasse pas vraiment référence à l'opérateur lui-même, je suppose.

17voto

Anton Strogonoff Points 6792

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

Comme vu ici : Pensez Python/Tuples/Les tuples d'arguments de longueur variable .

2 votes

Mais on ne peut pas crier "rassembler" ou "disperser" comme on peut le faire avec SPLAT :D

0 votes

@SamanthaBranham J'aime la façon dont gather et scatter peuvent être facilement et distinctement visualisés. Bien sûr, splat se visualise aussi très bien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X