Eigenname für Python * Operator?


208

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


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.


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


49

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


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


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 .


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


1

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.