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


210

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


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

Ответы:


170

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

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


90
ни разу не слышал и не видел "сплат" за 10 лет использования python.
Джо Коберг

8
Ну, в python он также используется для упаковки списков аргументов, так что в этом контексте он должен называться unsplat ? :)
Джон Ла Рой

45
@ THC4k Я предлагаю splatsplat.
Джош Ли

5
К сожалению, у INTERCAL нет *оператора, поэтому нам не хватает официального источника ...
wberry

3
В JavaScript (es2015) он известен как оператор распространения .
Кутьель


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 "ключевыми словами:

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.