собственное имя для оператора Python *? - PullRequest
189 голосов
/ 24 февраля 2010

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

Ответы [ 8 ]

153 голосов
/ 24 февраля 2010

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

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

111 голосов
/ 24 февраля 2010

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

38 голосов
/ 24 февраля 2010

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

16 голосов
/ 24 февраля 2010

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

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

14 голосов
/ 15 июля 2011

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

Как видно здесь: Подумайте Python / Tuples / Аргументы переменной длины .

5 голосов
/ 24 февраля 2010

Я полагаю, что чаще всего его называют «оператором сплат». Распаковка аргументов это то, что он делает.

1 голос
/ 10 мая 2011

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

0 голосов
/ 04 июля 2019

Мудрое наименование,

Вы можете назвать это как знак

функционально, вы можете назвать это распаковка с использованием специального синтаксиса '*'

Кстати,

*args => Arguments - will pack into tuple (), can unpack arguments from iterable. 
**kwargs => Keyword Arguments - will pack into dict {}, can unpack key value from dictionary.
...