With args
, we can pass in any amount of non-keyword variables, while with kwargs
we can pass in any amount of keyword arguments. We will explain the args
and kwargs
using an example of a sum function. More particularly, assume that we would like to build a function that sums up a list of numbers, without knowing the exact number of inputs.
Example of args
We will build a function called sum_func
that can take any number of arguments and the total sum will be returned.
def sum_func(*args): my_sum = 0 for n in args: my_sum+=n return(my_sum) print(sum_func(1,2,3,4))
10
As we can see, we passed the arguments “1,2,3,4” and it returned correctly 10 since 1+2+3+4 = 10.
Example of kwargs
Assume that we would like to sum the values based on the key values. For example, let’s say that we want to sum up incomes with the expenses (negative values). Using kwargs
we iterate over a dictionary. In the example below, for every key (k
), we add up its corresponding value (v
).
def sum_func(**kwargs): my_sum = 0 for k, v in kwargs.items(): my_sum+=v return(my_sum) print(sum_func(salary=1000, rent=-300))
700