proper name for python * operator?
Question:
What is the correct name for operator *
, as in function(*args)
? unpack, unzip, something else?
Answers:
In Ruby and Perl 6 this has been called "splat", and I think most people from
those communities will figure out what you mean if you call it that.
The Python tutorial uses the phrase "unpacking argument lists", which is
long and descriptive.
It is also referred to as iterable unpacking, or in the case of **
,
dictionary unpacking.
I believe it’s most commonly called the “splat operator.” Unpacking arguments is what it does.
The Python Tutorial simply calls it ‘the *
-operator’. It performs unpacking of arbitrary argument lists.
I say “star-args” and Python people seem to know what i mean.
**
is trickier – I think just “qargs” since it is usually used as **kw
or **kwargs
I call it “positional expansion”, as opposed to **
which I call “keyword expansion”.
I call *args “star args” or “varargs” and **kwargs “keyword args”.
One can also call *
a gather parameter (when used in function arguments definition) or a scatter operator (when used at function invocation).
As seen here: Think Python/Tuples/Variable-length argument tuples.
For a colloquial name there is "splatting".
For arguments (list type) you use single *
and for keyword arguments (dictionary type) you use double **
.
Both *
and **
is sometimes referred to as "splatting".
See for reference of this name being used:
https://stackoverflow.com/a/47875892/14305096
The technical term for this is a Variadic function. So in a sense, that’s the correct term without regard to programming language.
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!
What is the correct name for operator *
, as in function(*args)
? unpack, unzip, something else?
In Ruby and Perl 6 this has been called "splat", and I think most people from
those communities will figure out what you mean if you call it that.
The Python tutorial uses the phrase "unpacking argument lists", which is
long and descriptive.
It is also referred to as iterable unpacking, or in the case of **
,
dictionary unpacking.
I believe it’s most commonly called the “splat operator.” Unpacking arguments is what it does.
The Python Tutorial simply calls it ‘the *
-operator’. It performs unpacking of arbitrary argument lists.
I say “star-args” and Python people seem to know what i mean.
**
is trickier – I think just “qargs” since it is usually used as **kw
or **kwargs
I call it “positional expansion”, as opposed to **
which I call “keyword expansion”.
I call *args “star args” or “varargs” and **kwargs “keyword args”.
One can also call *
a gather parameter (when used in function arguments definition) or a scatter operator (when used at function invocation).
As seen here: Think Python/Tuples/Variable-length argument tuples.
For a colloquial name there is "splatting".
For arguments (list type) you use single *
and for keyword arguments (dictionary type) you use double **
.
Both *
and **
is sometimes referred to as "splatting".
See for reference of this name being used:
https://stackoverflow.com/a/47875892/14305096
The technical term for this is a Variadic function. So in a sense, that’s the correct term without regard to programming language.
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!