What happens if you don’t know the total number of
arguments that are being passed to a function? When
you read in data, you might not know how many
arguments to expect. Python allows you to use * and
(often referred to as *args and *kwargs) to define any
number of arguments or keyword arguments. and
allow you to iterate through a list or other collection of
data, as shown in this example:
Click here to view code image
>>> def hello(*args):
for arg in args:
print("Hello", arg, "!")
>>> hello('Caleb', 'Sydney', 'Savannah')
Hello Caleb!
Hello Sydney!
Hello Savannah!
By using keyword arguments, you can send a list of
key/value pairs to a function, as in the following
example:
Click here to view code image
>>> def hello(**kwargs):
for key, value in kwargs.items():
print("Hello", value, "!")
>>> hello(kwarg1='Caleb', kwarg2='Sydney',
kwarg3='Savannah')
Hello Caleb!
Hello Sydney!
Hello Savannah!
Note the use of the items() function in the for
statement to unpack and iterate through the values.