собственное имя для оператора Python *?

210

Какое правильное имя для оператора *, как в function(*args)? распаковать, распаковать, что-то еще?

Anycorn
источник
9
Javascript имеет эквивалентный оператор распространения ... .
Вольфганг Куен

Ответы:

170

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

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

ephemient
источник
90
ни разу не слышал и не видел "сплат" за 10 лет использования python.
Джо Коберг
8
Ну, в python он также используется для упаковки списков аргументов, так что в этом контексте он должен называться unsplat ? :)
Джон Ла Рой
45
@ THC4k Я предлагаю splatsplat.
Джош Ли
5
К сожалению, у INTERCAL нет *оператора, поэтому нам не хватает официального источника ...
wberry
3
В JavaScript (es2015) он известен как оператор распространения .
Кутьель
119

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

Игнасио Васкес-Абрамс
источник
49

Учебник Python просто называет его : " *-оператором. Выполняет распаковку произвольных списков аргументов .

Данило Пьяццалунга
источник
1
Это самый точный ответ, и это позор, что он не был принят!
Альфасин
3
@alfasin: Выражение ' *-operator' неоднозначно, поскольку *- в зависимости от контекста - может выполнять расширение аргумента или умножение, которые представляют собой две разные операции.
Hellogoodbye
1
@HelloGoodbye, и на самом деле нетрудно понять, какой он из контекста, в котором он находится.
alfasin
Похоже, ОП спрашивал, как произнести слово (что может быть, а может и не быть словом само по себе - это еще одна кроличья нора) *. Говоря, что *-operatorэто просто отбрасывает вопрос в ответ. OP, вероятно, хотел знать, как сказать это вслух (или в его голове), когда он сталкивается с этим. Это все для меня в новинку, и я пойду с "сплат!"
elPastor
17

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

**хитрее - я думаю, что просто "Qargs", так как он обычно используется как **kwили**kwargs

Джон Ла Рой
источник
2
Я также просто говорю kwargs, хотя это не относится к самому оператору, я полагаю.
ТМ.
14

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

Как видно здесь: Думайте кортежи Python / Tuples / Variable-length .

Антон Строгонов
источник
1
но вы не можете кричать, собираться или разбегаться, как вы можете с SPLAT: D
Саманта Бранхам
@SamanthaBranham Мне нравится, как собирать и разбрасывать можно легко и отчетливо визуализировать. Конечно, сплат тоже отлично визуализируется 😂💥
Антон Строгонов
1

Я называю * args "звездные аргументы" или "varargs", а ** kwargs "ключевыми словами:

wberry
источник