Собственное имя для оператора 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".