python *运算符的专有名称?

时间:2010-02-23 22:48:34

标签: python operators splat

运营商*的正确名称是什么,如function(*args)中所示?解包,解压缩,别的什么?

9 个答案:

答案 0 :(得分:151)

在Ruby和Perl 6中,这被称为“splat”,我认为来自这些社区的大多数人会明白你的意思,如果你这么说的话。

Python tutorial使用短语“解包参数列表”,这是一个很长且具有描述性的。我没有在Python中听到任何其他特定名称。

答案 1 :(得分:110)

我将其称为“位置扩展”,而不是我称之为“关键字扩展”的**

答案 2 :(得分:35)

Python Tutorial只是将其称为“* - 运营商”。它执行arbitrary argument lists的解压缩。

答案 3 :(得分:16)

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

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

答案 4 :(得分:14)

还可以调用* 收集参数(在函数参数定义中使用时)或散点运算符(在函数调用时使用)。 / p>

如下所示:Think Python/Tuples/Variable-length argument tuples

答案 5 :(得分:5)

我认为它最常被称为“splat operator”。 Unpacking arguments就是它的作用。

答案 6 :(得分:2)

技术术语是 Variadic function。因此,从某种意义上说,这是不考虑编程语言的正确术语。

也就是说,在不同的语言中,该术语确实有合法的名称。正如其他人所提到的,它在 rubyjulia 和其他几种语言中被称为“splat”,并在官方文档中以该名称注明。在 javascript 中,它被称为 "spread" syntax。正如其他答案中所述,它在许多其他语言中还有许多其他名称。不管你怎么称呼它,它都非常有用!

答案 7 :(得分:1)

我打电话给* args“star args”或“varargs”和** kwargs“keyword args”。

答案 8 :(得分:-1)

俗称“ splatting”。

对于参数(列表类型),您使用单个*;对于关键字参数(字典类型),您使用双**

***有时也称为“飞溅”。

请参阅以下有关此名称的参考: https://stackoverflow.com/a/47875892/14305096