2010-02-23 19 views
147

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

+2

Javascript tiene el operador ** spread ** '...' equivalente. –

Respuesta

115

En Ruby y Perl 6 esto se ha denominado "splat", y creo que la mayoría de la gente de esas comunidades sabrá qué quiere decir si lo llama así.

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

+5

¿Hay un nombre para '**' también, o es exclusivo de Python? –

+71

nunca escuchó/vio "splat" en unos 10 años de uso de Python. –

+8

Bueno, en Python también se usa para ** empacar ** listas de argumentos, ¿en ese contexto debería llamarse ** unsplat **? :) –

27

El Python Tutorial simplemente lo llama 'el * -operador'. Realiza el desembalaje de arbitrary argument lists.

+0

¡Esta es la respuesta más precisa y es una pena que no haya sido aceptada! – alfasin

+2

@alfasin: La expresión 'the '*' -operator' es ambigua ya que '*' - dependiendo del contexto - puede realizar cualquier expansión o multiplicación de argumento que son dos operaciones diferentes. – HelloGoodbye

+0

@HelloGoodbye y realmente no es difícil de entender cuál es el contexto en el que se encuentra. – alfasin

16

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

** es complicado - Creo que sólo "qargs" ya que se utiliza por lo general como **kw o **kwargs

+2

También digo 'kwargs', aunque eso en realidad no se refiere al operador en sí, supongo. –

93

Lo llamo "la expansión posicional", en contraposición a ** que llamo "expansión de palabras clave".

+2

double-splat, jaja. –

-1

Llamo * args "star args" o "varargs" y ** kwargs "keyword args".