# How to use *args and **kwargs in Python?

PythonServer Side ProgrammingProgramming

#### Beyond Basic Programming - Intermediate Python

Most Popular

36 Lectures 3 hours

#### Practical Machine Learning using Python

Best Seller

91 Lectures 23.5 hours

#### Practical Data Science using Python

22 Lectures 6 hours

In Python, the single-asterisk form of *args can be used as a parameter to send a non-keyworded variable-length argument list to functions. It is seen that the asterisk (*) is important here, and along with the word args it means there is a variable length list of non-keyworded arguments.

## Example

Given code on *args is rewritten as follows

def multiply(*args):
y = 1
for i in args:
y = y * i
print y
multiply(3, 4)
multiply(10, 8)
multiply(2, 5, 6)
multiply(4, 5, 10, 9)

## Output

C:/Users/TutorialsPoint1/~.py
12
80
60
1800

The double asterisk form of **kwargs is used to pass a keyworded, variable-length argument dictionary to a function. Again, the two asterisks (**) are the important and along with the word kwargs, indicate that there is a dictionary of variable-length keyworded arguments.

## Example

Given code on **kwargs is rewritten as

def print_kwargs(**kwargs):
print(kwargs)
print_kwargs(a='foo', b=10, c =True)

## Output

C:/Users/TutorialsPoint1/~.py
{'a': 'foo', 'b': 10, 'c': True}
Updated on 13-Feb-2020 06:13:56