Last Updated : 11 Dec, 2024
In Python, *args and **kwargs are used to allow functions to accept an arbitrary number of arguments. These features provide great flexibility when designing functions that need to handle a varying number of inputs.
Example:
Python
# *args example
def fun(*args):
return sum(args)
print(fun(1, 2, 3, 4))
print(fun(5, 10, 15))
# **kwargs example
def fun(**kwargs):
for k, val in kwargs.items():
print(k, val)
fun(a=1, b=2, c=3)
Let's explore *args and **kwargs in detail:
There are two special symbols to pass multiple arguments:
*args and **kwargs in PythonSpecial Symbols Used for passing arguments in Python:
Python *argsNote: “We use the "wildcard" or "*" notation like this - *args OR **kwargs - as our function's argument when we have doubts about the number of arguments we should pass in a function.”
The special syntax *args in function definitions is used to pass a variable number of arguments to a function. It is used to pass a non-keyworded, variable-length argument list.
Example 1:
Python program to illustrate *args for a variable number of arguments
python
def myFun(*argv):
for arg in argv:
print(arg)
myFun('Hello', 'Welcome', 'to', 'GeeksforGeeks')
Hello Welcome to GeeksforGeeks
Example 2:
Python program to illustrate *args with a first extra argument.
Python
def fun(arg1, *argv):
print("First argument :", arg1)
for arg in argv:
print("Argument *argv :", arg)
fun('Hello', 'Welcome', 'to', 'GeeksforGeeks')
First argument : Hello Argument *argv : Welcome Argument *argv : to Argument *argv : GeeksforGeeksPython **kwargs
The special syntax **kwargs in function definitions is used to pass a variable length argument list. We use the name kwargs with the double star **.
Example 1:
Python
def fun(**kwargs):
for k, val in kwargs.items():
print("%s == %s" % (k, val))
# Driver code
fun(s1='Geeks', s2='for', s3='Geeks')
s1 == Geeks s2 == for s3 == Geeks
For s1='Geeks', s1 is key and 'Geeks' is a value. In simple words, what we assign is value and to whom we assign is key.
Example 2:
Python
def fun(arg1, **kwargs):
for k, val in kwargs.items():
print("%s == %s" % (k, val))
# Driver code
fun("Hi", s1='Geeks', s2='for', s3='Geeks')
s1 == Geeks s2 == for s3 == GeeksUsing both *args and **kwargs
We can use both *args and **kwargs in the same function to accept a mix of positional and keyword arguments.
Example:
Python
def fun(*args, **kwargs):
print("Positional arguments:", args)
print("Keyword arguments:", kwargs)
fun(1, 2, 3, a=4, b=5)
Positional arguments: (1, 2, 3) Keyword arguments: {'a': 4, 'b': 5}
In this example, the fun can handle both positional and keyword arguments. The args parameter collects positional arguments into a tuple, while the kwargs parameter collects keyword arguments into a dictionary.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4