nome próprio para o operador python *?

210

Qual é o nome correto para o operador *, como em function(*args)? descompactar, descompactar, outra coisa?

Anycorn
fonte
9
Javascript tem o operador de propagação equivalente ....
Wolfgang Kuehn

Respostas:

170

Em Ruby e Perl 6, isso foi chamado de "splat", e acho que a maioria das pessoas dessas comunidades descobrirá o que você quer dizer com isso.

O tutorial do Python usa a frase "descompactar listas de argumentos", que é longa e descritiva. Eu não ouvi nenhum outro nome específico para ele em Python.

efémero
fonte
90
nunca ouviu ou viu "splat" em 10 anos usando python.
Joe Koberg 23/02
8
Bem, em python, ele também é usado para empacotar listas de argumentos; portanto, nesse contexto, ele deve ser chamado de sem plataforma ? :)
John La Rooy 23/02
45
@ THC4k proponho splatsplat.
21710 Josh Lee
5
Infelizmente INTERCAL não tem *como um operador assim que nós estamos faltando para uma fonte oficial ...
wberry
3
No JavaScript (es2015), é conhecido como o operador de propagação .
Kutyel
119

Eu chamo isso de "expansão posicional", em oposição ao **que eu chamo de "expansão de palavra-chave".

Ignacio Vazquez-Abrams
fonte
49

O Tutorial do Python simplesmente o chama de ' *operador'. Ele realiza a descompactação de listas de argumentos arbitrárias .

Danilo Piazzalunga
fonte
1
Esta é a resposta mais precisa e é uma pena que não tenha sido aceita!
Alfasin
3
@ alfasin: A expressão 'the *-operator' é ambígua, pois *- dependendo do contexto - pode executar expansão ou multiplicação de argumentos, que são duas operações diferentes.
HelloGoodbye
1
@HelloGoodbye e não é realmente difícil de entender qual é que é a partir do contexto que está.
alfasin
Parece que o OP estava perguntando como pronunciar (que pode ou não ser uma palavra em si - isso é outra toca do coelho) *. Ao dizer que *-operatoré simplesmente jogar a pergunta de volta como resposta. O OP provavelmente queria saber como dizer em voz alta (ou na cabeça) quando o encontrasse. Isso tudo é novo para mim, e eu irei com "splat!".
ElPastor 23/03/19
17

Eu digo "star-args" e as pessoas do Python parecem saber o que quero dizer.

**é mais complicado - acho que apenas "qargs", pois geralmente é usado como **kwou**kwargs

John La Rooy
fonte
2
Também digo kwargs, embora isso não se refira realmente ao próprio operador, suponho.
TM.
14

Também é possível chamar *um parâmetro de coleta (quando usado na definição de argumentos de função) ou um operador de dispersão (quando usado na chamada de função).

Como visto aqui: Pense em tuplas de argumento Python / Tuplas / Comprimento variável .

Anton Strogonoff
fonte
1
mas você não pode gritar reunir ou espalhar como você pode com SPLAT: D
Samantha Branham
@SamanthaBranham Gosto de como a coleta e a dispersão podem ser visualizadas de maneira fácil e distinta. De visualiza curso splat grande, também 😂💥
Anton Strogonoff
7

Eu acredito que é mais comumente chamado de "operador de splat". Desempacotar argumentos é o que ele faz.

Mandril
fonte
1

Eu chamo * args "args estrela" ou "varargs" e ** kwargs "palavra-chave args".

amora
fonte