Title here
Summary here
Variadic functions can be called with any number of trailing arguments. For example, print
is a common variadic function.
Here’s a function that will take an arbitrary number of integers as arguments.
def sum(*nums):
print(nums, end=" ")
total = 0
for num in nums:
total += num
print(total)
def main():
sum(1, 2)
sum(1, 2, 3)
nums = [1, 2, 3, 4]
sum(*nums)
if __name__ == "__main__":
main()
Within the function, the type of nums
is equivalent to tuple
. We can call len(nums)
, iterate over it with a loop, etc.
Variadic functions can be called in the usual way with individual arguments.
sum(1, 2)
sum(1, 2, 3)
If you already have multiple args in a list, you can apply them to a variadic function using func(*list)
like this:
nums = [1, 2, 3, 4]
sum(*nums)
The expected output when running this script will be:
$ python variadic-functions.py
(1, 2) 3
(1, 2, 3) 6
(1, 2, 3, 4) 10
Another key aspect of functions in Python is their ability to form closures, which we’ll look at next.