python *运算符的专有名称?

proper name for python * operator?

function(*args)中一样,*运算符的正确名称是什么?解包,解压,还有别的吗?


在Ruby和Perl6中,这被称为"splat",我认为那些社区的大多数人都会明白如果你这样称呼它是什么意思。

python教程使用短语"解包参数列表",这是一个很长的描述性短语。在python中,我没有听到它的任何其他特殊名称。


我称之为"位置扩展",而不是我称之为"关键字扩展"的**


python教程简单地称之为"EDOCX1"(0)操作符。它执行任意参数列表的解包。


我说的是"星星args",而Python人似乎知道我的意思。

**更难对付,我认为只是"qargs",因为它通常被用作**kw**kwargs


还可以调用*、gather参数(在函数参数定义中使用时)或scatter运算符(在函数调用中使用时)。

如图所示:想想python/tuples/variable-length参数tuples。


我相信它最常用的名字是"splat操作符",解包参数就是它的作用。


我将*args称为"star args"或"varargs",将**kwargs称为"keyword args"。