2010-02-23 10 views
147

Wie lautet der korrekte Name für Operator *, wie in function(*args)? entpacken, entpacken, etwas anderes?Eigenname für Python * -Operator?

+2

Javascript hat das Äquivalent ** Spread ** '...' Operator. –

Antwort

115

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.

Die Python tutorial verwendet den Ausdruck "Entpackungsargumentlisten", der lang und beschreibend ist. Ich habe in Python keinen anderen Namen dafür gehört.

+5

Gibt es auch einen Namen für '**', oder ist es nur für Python? –

+71

nie einmal "splat" in etwa 10 Jahren mit Python gehört/gesehen. –

+8

Nun in Python wird es auch verwendet, um ** Argumentlisten zu packen, also sollte es in diesem Kontext ** unplat ** heißen? :) –

27

Die Python Tutorial nennt es einfach "* -Operator". Es führt das Auspacken von arbitrary argument lists aus.

+0

Dies ist die genaueste Antwort und es ist eine Schande, dass es nicht akzeptiert wurde! – alfasin

+2

@alfasin: Der Ausdruck 'der '*' -Operator' ist mehrdeutig, da '*' - abhängig vom Kontext - entweder eine Argument-Erweiterung oder eine Multiplikation ausführen kann, die zwei verschiedene Operationen sind. – HelloGoodbye

+0

@HelloGoodbye und es ist wirklich nicht schwer zu verstehen, welche es aus dem Kontext ist es ist. – alfasin

16

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

** ist schwieriger - ich denke nur, „qargs“, da es in der Regel als **kw oder **kwargs

+2

Ich sage auch nur 'kwargs', obwohl das nicht wirklich auf den Betreiber beziehen ich nehme an. –

93

Ich nenne es „Positions Expansion“ verwendet wird, im Gegensatz zu **, die ich „Keyword-Erweiterung“ nennen.

+2

Doppel-Splat, haha. –

-1

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