proper name for python * operator?
与function(*args)中一样,*运算符的正确名称是什么?解包,解压,还有别的吗?
- javascript具有等效的spread ...运算符。
在Ruby和Perl6中,这被称为"splat",我认为那些社区的大多数人都会明白如果你这样称呼它是什么意思。
python教程使用短语"解包参数列表",这是一个很长的描述性短语。在python中,我没有听到它的任何其他特殊名称。
- 有没有**的名称,或者它对于python是唯一的?
- 在使用python大约10年的时间里,从来没有听说过"splat"。
- 在python中,它还用于打包参数列表,所以在这种上下文中,它应该称为unsplat吗?:)
- @我认为"splat"是指*的图形化外观。但是,是的,如果你把它用作动词,那么你就把论点放进去,然后把它们放出来:p
- @我建议使用splatsplat。
- groovy还称之为"splat"运算符
- 不幸的是,Intercal没有*作为操作员,所以我们缺少官方来源…
- 在javascript(es2015)中,它被称为spread操作符。
- 在scala中,它也被称为"splat"操作符。
- 我喜欢"双扇"!
我称之为"位置扩展",而不是我称之为"关键字扩展"的**。
python教程简单地称之为"EDOCX1"(0)操作符。它执行任意参数列表的解包。
- 这是最准确的答案,可惜没有被接受!
- @alfasin:"*运算符"的表达式不明确,因为*可以执行参数扩展或乘法,这两种操作是不同的。
- @从它所处的环境中,我们不难理解它是哪一个。
- @阿尔法辛:但是谷歌很难
- 似乎是操作询问如何发音(可能是一个词本身,也可能不是一个词本身,那是另一个兔子洞)*。说这是江户十一〔七〕只是把这个问题作为答案扔了回去。欧普可能想知道当他遇到它的时候,如何大声地说出来(或在他的头脑里)。这对我来说都是新的,我要用"splat"来形容。.
我说的是"星星args",而Python人似乎知道我的意思。
**更难对付,我认为只是"qargs",因为它通常被用作**kw或**kwargs。
- 我也只是说kwargs,虽然我想这并不是指操作员本身。
还可以调用*、gather参数(在函数参数定义中使用时)或scatter运算符(在函数调用中使用时)。
如图所示:想想python/tuples/variable-length参数tuples。
- 但你不能像用splat:d那样大喊大叫"聚集"或"分散"。
- @萨曼塔布拉南我喜欢如何收集和分散可以很容易和清楚地可视化。当然,Splat也能很好地显示?????
我相信它最常用的名字是"splat操作符",解包参数就是它的作用。
我将*args称为"star args"或"varargs",将**kwargs称为"keyword args"。