Eigenname für Python * Operator?

208

Wie lautet der korrekte Name für den Operator *wie in function(*args)? auspacken, entpacken, noch etwas?

Anycorn
quelle
9
Javascript hat den entsprechenden Spread- ... Operator.
Wolfgang Kuehn

Antworten:

168

In Ruby und Perl 6 wurde dies "Splat" genannt, und ich denke, die meisten Leute aus diesen Communities werden herausfinden, was Sie meinen, wenn Sie es so nennen.

Das Python-Tutorial verwendet den Ausdruck "Argumentlisten entpacken", der lang und beschreibend ist. Ich habe in Python keinen anderen Namen dafür gehört.

kurzlebig
quelle
90
Ich habe in etwa 10 Jahren mit Python noch nie "Splat" gehört / gesehen.
Joe Koberg
8
Nun, in Python wird es auch zum Packen von Argumentlisten verwendet . Sollte es in diesem Zusammenhang als unsplat bezeichnet werden ? :)
John La Rooy
45
@ THC4k schlage ich vor splatsplat.
Josh Lee
5
Leider hat INTERCAL keinen *Betreiber, so dass uns eine offizielle Quelle fehlt ...
wberry
3
In JavaScript (es2015) wird es als Spread-Operator bezeichnet .
Kutyel
118

Ich nenne es "Positionserweiterung", im Gegensatz zu **"Schlüsselworterweiterung".

Ignacio Vazquez-Abrams
quelle
49

Das Python-Tutorial nennt es einfach "den *Operator". Es entpackt beliebige Argumentlisten .

Danilo Piazzalunga
quelle
1
Dies ist die genaueste Antwort und es ist eine Schande, dass sie nicht akzeptiert wurde!
Alfasin
3
@alfasin: Der Ausdruck 'the *-operator' ist mehrdeutig, da er *- je nach Kontext - entweder eine Argumenterweiterung oder eine Multiplikation durchführen kann, bei der es sich um zwei verschiedene Operationen handelt.
HelloGoodbye
1
@HelloGoodbye und es ist wirklich nicht schwer zu verstehen, welches es aus dem Kontext ist, in dem es ist.
Alfasin
Es scheint, als hätte das OP gefragt, wie man es ausspricht (was selbst ein Wort sein kann oder nicht - das ist ein weiteres Kaninchenloch) *. Wenn man sagt, dass es das *-operatorist, wirft man die Frage einfach als Antwort zurück. OP wollte wahrscheinlich wissen, wie man es laut (oder in seinem Kopf) sagt, wenn er darauf stößt. Das ist alles neu für mich und ich werde mit "Splat!"
elPastor
17

Ich sage "Star-Args" und Python-Leute scheinen zu wissen, was ich meine.

**ist schwieriger - ich denke nur "qargs", da es normalerweise als **kwoder verwendet wird**kwargs

John La Rooy
quelle
2
Ich sage auch nur kwargs, obwohl sich das wohl nicht wirklich auf den Operator selbst bezieht.
TM.
14

Man kann auch *einen Gather-Parameter (bei Verwendung in der Definition von Funktionsargumenten) oder einen Scatter-Operator (bei Verwendung beim Funktionsaufruf) aufrufen .

Wie hier zu sehen: Denken Sie an Python / Tuples / Argument-Tupel mit variabler Länge .

Anton Strogonoff
quelle
1
Aber Sie können nicht schreien, wie Sie mit SPLAT sammeln oder zerstreuen können: D
Samantha Branham
@SamanthaBranham Ich mag es, wie Sammeln und Streuen einfach und deutlich visualisiert werden können. Natürlich visualisiert Splat auch großartig 😂💥
Anton Strogonoff
7

Ich glaube, es wird am häufigsten als "Splat-Operator" bezeichnet. Das Auspacken von Argumenten ist das, was es tut.

Futter
quelle
1

Ich nenne * args "star args" oder "varargs" und ** kwargs "keyword args".

wberry
quelle