< p > 在 < code > function(*args) 中,操作符 < code > * 的正确名称是什么?展开,解压缩还是其他?< / p >
*
作为运算符,因此我们缺乏官方来源... - wberry我称之为“位置扩展”,与我所谓的“关键词扩展”**
相对应。
*
。通过说它是“*运算符”,只是把问题作为答案扔回去了。楼主可能想知道当他遇到它时如何大声说出来(或在他的脑海中)。这对我来说都是新的,我会用“splat!” - elPastor我说“星号参数”,Python人似乎知道我在说什么。
**
更棘手-我认为只需称其为"qargs",因为它通常用作**kw
或**kwargs
kwargs
,虽然这可能并不真正涉及到操作符本身。 - TM.当在函数参数定义中使用时,*
可以被称为可变参数,也可以被称为scatter操作符(当在函数调用时使用)。
有一个口语化的称呼叫做"splatting"。
当你使用参数(列表类型)时,你需要使用单个*
,而当你使用关键字参数(字典类型)时,你需要使用双重**
。
在某些情况下,*
和**
都被称为"splatting"。
这个技术术语是可变参数函数。因此,在某种程度上,这是正确的术语,而不考虑编程语言。
话虽如此,在不同的语言中,该术语确实有合法的名称。正如其他人所提到的,在ruby、julia和其他几种语言中,它被称为"splat",并在官方文档中以该名称进行了注明。在javascript中,它被称为"spread" 语法。正如其他答案中提到的那样,在许多其他语言中,它有许多其他名称。无论你如何称呼它,它都非常有用!
...
。 - Wolfgang Kuehn