Python *Args and **Kwargs Parameter [ Simplest Example]


Python functions are a little bit different from C/C++ functions as they can receive variable parameters using *args and **kwargs parameters.

python args and kwargs parameter

*args allows a variable number of parameters of the same data type as a parameter. In order to understand the working of *args, lets us explore the example

def sum(a, b):
    print("sum is", a+b)


sum(10,5)

output of the above code is

sum is : 15

The above python function will collapse if you pass 3 parameters or 1 parameter. SO this type of parameters are   also known as static parameters.

Python Function to Demonstrate the working of *args parameter

#   function to demonstrate the workin of args and kwards paramater
#   made by         : rakesh kumar

def sum_values(*args):
    sum = 0
    for x in args:
        sum += x
    return sum

if __name__ == "__main__":
    res = sum_values(1, 2, 3, 4, 5, 6, 7, 8, 9)
    print('Sum of values :', res)

OUtput of above function is

Sum of values : 45

The above function takes all the arguments and add the values in and return to its calling function using return.

Python **kwargs parameter

Python passes variable length non keyword argument to function using *args but we cannot use this to pass keyword argument. For this problem Python has got a solution called **kwargs, it allows us to pass the variable length of keyword arguments to the function.

In the function, we use the double asterisk ** before the parameter name to denote this type of argument. The arguments are passed as a dictionary and these arguments make a dictionary inside function with name same as the parameter excluding double asterisk **.

Python function to explain **kwargs

#   python program to demonstrate the use of kwargs arguments in pyhon
#   made by             : rakesh kumar

def sum_kwargs(**kwargs):
    for x, y in kwargs.items():
        print('{} and its valiue {}'.format(x, y))

if __name__ == "__main__":
    sum_kwargs(name='rakesh', school='DAV', salary=50000)

The output of the above function is

name and its valiue rakesh
school and its valiue DAV
salary and its valiue 50000

Summary of *args and **kwargs:

  • *args and *kwargs are special keyword which allows a function to take a variable-length argument.
  • *args passes variable number of non-keyworded arguments list and on which operation of the list can be performed.
  • **kwargs passes variable number of keyword arguments dictionary to function on which operation of a dictionary can be performed.
  • *args and **kwargs make the function flexible.

Now I think you have the idea of *args and **kwargs function parameters. if you have any questions, please contact us

Print Friendly, PDF & Email

Related Posts

If you like CBSEToaday and would like to contribute, you can also write an article using submit article or mail your article to contribute@cbsetoday.com See your article appearing on the cbsetoday.com main page and help other students/teachers.