python *运算符的专有名称?


208

什么是运营商的正确名称*,如function(*args)?打开包装,解压缩,还有其他东西吗?


9
JavaScript具有等效的传播 ...运算符。
Wolfgang Kuehn

Answers:


168

在Ruby和Perl 6中,这被称为“ splat”,我认为那些社区的大多数人都会明白您的意思。

Python的教程使用短语“拆包参数列表”,这是长和描述。我在Python中还没有听说过其他特殊名称。


90
在使用python的大约十年中,从未听说过/看到过“摔跤”。
Joe Koberg 2010年

8
在python中,它也用于打包参数列表,因此在这种情况下应将其称为unsplat吗?:)
John La Rooy

45
我建议@ THC4k splatsplat
Josh Lee,2010年

5
不幸的是,INTERCAL没有*运营商,所以我们缺少官方来源...
wberry

3
在JavaScript(es2015)中,它被称为传播算子
Kutyel


49

Python的教程简单地说,这是的*-运算符“。它执行任意参数列表的解压缩。


1
这是最准确的答案,可惜没有被接受!
alfasin

3
@alfasin:表达式“ -operator *”是模棱两可的,因为*根据上下文,可以执行两个不同操作的参数扩展或乘法。
HelloGoodbye

1
@HelloGoodbye,从上下文中了解它到底是哪一个并不难
。– alfasin

好像OP正在询问如何发音(这可能是一个词本身,也可能不是,这是另一个兔子洞)*。通过说这*-operator就是简单地将问题作为答案。OP可能想知道当他遇到它时要大声说出来(或在他的头上)。这对我来说是全新的,我将继续使用“ splat!”。
elPastor

17

我说“ star-args”,Python的人似乎知道我的意思。

**比较棘手-我认为只是“ qargs”,因为它通常用作**kw**kwargs


2
我也只是说kwargs,尽管这并不是我真正想的运算符本身。
TM。



1

我将* args称为“ star args”或“ varargs”,并将** kwargs称为“ keyword args”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.