nombre propio del operador python *?

210

¿Cuál es el nombre correcto para operador *, como en function(*args)? descomprimir, descomprimir, algo más?

Cualquier maíz
fuente
9
Javascript tiene el operador de propagación equivalente ....
Wolfgang Kuehn

Respuestas:

170

En Ruby y Perl 6 esto se ha llamado "splat", y creo que la mayoría de las personas de esas comunidades entenderán a qué te refieres si lo llamas así.

El tutorial de Python usa la frase "desempacar listas de argumentos", que es larga y descriptiva. No he escuchado ningún otro nombre en particular en Python.

efímero
fuente
90
Nunca escuché / vi "splat" en aproximadamente 10 años de usar Python.
Joe Koberg
8
Bueno, en Python también se usa para empacar listas de argumentos, entonces, en ese contexto, ¿debería llamarse unsplat ? :)
John La Rooy
45
@ THC4k propongo splatsplat.
Josh Lee
55
Desafortunadamente, INTERCAL no tiene *como operador, por lo que nos falta una fuente oficial ...
wberry
3
En JavaScript (es2015) se conoce como el operador de propagación .
Kutyel
119

Lo llamo "expansión posicional", a diferencia de **lo que llamo "expansión de palabras clave".

Ignacio Vazquez-Abrams
fuente
49

El Tutorial de Python simplemente lo llama 'el *operador'. Realiza el desempaquetado de listas de argumentos arbitrarios .

Danilo Piazzalunga
fuente
1
¡Esta es la respuesta más precisa y es una pena que no haya sido aceptada!
alfasin
3
@alfasin: La expresión 'the *-operator' es ambigua ya que *, dependiendo del contexto, puede realizar la expansión o multiplicación de argumentos, que son dos operaciones diferentes.
Hola
1
@HelloGoodbye y realmente no es difícil entender cuál es por el contexto en el que se encuentra.
alfasin
Parece que el OP estaba preguntando cómo pronunciar (lo que puede o no ser una palabra en sí misma, esa es otra madriguera) *. Al decir que *-operatores simplemente está devolviendo la pregunta como respuesta. OP probablemente quiso saber cómo decirlo en voz alta (o en su cabeza) cuando lo encuentra. Todo esto es nuevo para mí, y voy a ir con "splat!".
elPastor el
17

Digo "star-args" y la gente de Python parece saber a qué me refiero.

**es más complicado: creo que solo "qargs" ya que generalmente se usa como **kwo**kwargs

John La Rooy
fuente
2
También solo digo kwargs, aunque eso realmente no se refiere al operador en sí, supongo.
TM.
14

También se puede llamar *un parámetro de recopilación (cuando se usa en la definición de argumentos de función) o un operador de dispersión (cuando se usa en la invocación de función).

Como se ve aquí: Piense en Python / Tuplas / Tuplas de argumento de longitud variable .

Anton Strogonoff
fuente
1
pero no puede gritar reunirse o dispersarse como puede con SPLAT: D
Samantha Branham
@SamanthaBranham Me gusta cómo se pueden visualizar de forma fácil y clara la reunión y la dispersión. Por supuesto, Splat visualiza muy bien también
Anton
1

Llamo * args "star args" o "varargs" y ** kwargs "palabra clave args".

fresa
fuente