运算符的正确名称是什么*
,如function(*args)
?解压,解压,还有别的吗?
9 回答
我称之为“位置扩展”,而不是**
我称之为“关键字扩展”。
我说“star-args”,Python 人似乎明白我的意思。
**
更棘手 - 我认为只是“qargs”,因为它通常用作**kw
或**kwargs
还可以调用*
聚集参数(在函数参数定义中使用时)或分散运算符(在函数调用时使用时)。
我相信它最常被称为“splat 运算符”。解包参数就是它的作用。
对此的技术术语是可变参数函数。所以从某种意义上说,这是正确的术语,与编程语言无关。
That said, in different languages the term does have legitimate names. As others have mentioned, it is called "splat" in ruby, julia, and several other languages and is noted by that name in official documentation. In javascript it is called the "spread" syntax. It has many other names in many other languages, as mentioned in other answers. Whatever you call it, it's quite useful!
我将 *args 称为“star args”或“varargs”,将 **kwargs 称为“keyword args”。
对于一个俗名,有“splatting”。
对于参数(列表类型),您使用 single *
,对于关键字参数(字典类型),您使用 double **
。
两者*
,**
有时也被称为“飞溅”。
请参阅正在使用的此名称的参考: https ://stackoverflow.com/a/47875892/14305096