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

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

9 ответов

Решение

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

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

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

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

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

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

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

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

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

Технический термин для этого - функция Variadic . Так что в некотором смысле это правильный термин безотносительно языка программирования.

Тем не менее, на разных языках у этого термина есть законные названия. Как уже упоминалось другими, он называется «splat» на ruby, julia и нескольких других языках и отмечен этим именем в официальной документации. В javascript это называется синтаксисом «распространения» . У него много других имен на многих других языках, как упоминалось в других ответах. Как бы вы это ни называли, это весьма полезно!

Для разговорного имени есть "сплаттинг".

Для аргументов (типа списка) вы используете одиночный * а для аргументов ключевого слова (тип словаря) вы используете double **.

И то и другое * и ** иногда называют "разбрызгиванием".

См. Справку об использовании этого имени: /questions/13204026/is-there-an-object-spread-syntax-in-python-27x-like-in-javascript/13204039#13204039

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

Другие вопросы по тегам