2010-02-23 2 views

ответ

115

В Ruby и Perl 6 это называется «splat», и я думаю, что большинство людей из этих сообществ поймут, что вы имеете в виду, если вы это назовете.

В статье Python tutorial используется фраза «распаковки списков аргументов», которая длинная и описательная. Я еще не слышал другого имени для этого в Python.

+5

Есть ли имя для '**', или это уникально для Python? –

+71

никогда не слышал/не видел «splat» примерно через 10 лет использования python. –

+8

Ну и в python он также используется для ** пакета ** списков аргументов, поэтому в этом контексте следует ли это называть ** unsplat **? :) –

5

Я считаю, что его чаще всего называют «оператором splat». Unpacking arguments - это то, что он делает.

27

Python Tutorial просто называет это '* -оператором'. Он выполняет распаковку arbitrary argument lists.

+0

Это самый точный ответ, и это позор, который он не принял! – alfasin

+2

@alfasin: выражение '' '-operator 'является неоднозначным, поскольку' * '- в зависимости от контекста - может выполнять либо расширение аргумента, либо умножение, которое представляет собой две разные операции. – HelloGoodbye

+0

@HelloGoodbye, и это действительно не сложно понять, какой из них он из контекста, в котором он находится. – alfasin

16

Я говорю «звезды-арги», и люди Python, похоже, знают, что я имею в виду.

** сложнее - я думаю, что просто «qargs», так как он обычно используется в качестве **kw или **kwargs

+2

Я также просто говорю 'kwargs', хотя это действительно не относится к оператору я полагаю. –

93

Я называю это «позиционным расширение», в отличие от **, которую я называю «ключевое слово расширения».

+2

двойной знак, ха-ха. –

-1

Я называю * args "star args" или "varargs" и ** kwargs "keyword args".

12

Можно также назвать *собрать параметр (при использовании в определении аргументов функции) или Разброс оператор (при использовании при вызове функции).

Как видно здесь: Think Python/Tuples/Variable-length argument tuples.

Смежные вопросы