*args
is the short form for Arbitrary Arguments
If the number of arguments to be passed into the function is unknown, add a (*) before the argument name.
Lets say you want to create a function that will sum up a list of numbers. The most intuitive way will be to create that list and pass it into a function, as shown below.
However, if we do it this way it means that we will have to create a new list every single time.
So an alternative will be to use*args
where you can pass a varying number of positional arguments instead of creating a list to store these arguments.
Lets edit our sum_function()
*args
is just a name. We can change arg
to anything we want like how we changed it to *numbers
above.
The important thing here is the unpacking operator (*)
.
The operator will take all positional arguments given in the input and pack them all into a single iterable object. Take note, the iterable object will be a tuple not a list.
Tuples and lists are similar in all aspects except that tuples are not mutable. Immutable means its values cannot be edited after assignment.
Write a function that will take in an unknown number of arguments and multiply all of them together and run the function for these 2 sets of numbers: