2019-10-02 22:24:05 +00:00
|
|
|
# Representing a variable-length argument list
|
|
|
|
|
|
|
|
# Think of 'args' as a tuple of positional arguments
|
|
|
|
def add(*args):
|
|
|
|
return sum(args)
|
|
|
|
|
|
|
|
# This function works with any number of positional arguments
|
|
|
|
add(1, 2, 3, 4, 5)
|
|
|
|
# 15
|
|
|
|
|
2019-10-02 22:58:12 +00:00
|
|
|
# You can also use the '*' operator to 'explode' a list of arguments
|
|
|
|
numbers = [1, 2, 3, 4, 5]
|
|
|
|
add(*numbers) # unpacks the list into an argument list for the function
|
|
|
|
# 15
|
|
|
|
|
2019-10-02 22:24:05 +00:00
|
|
|
# Now we have args (one '*') and kwargs (two '*'s)
|
|
|
|
# args is a tuple just like before, kwargs is a dictionary of the provided
|
|
|
|
# keyword arguments
|
|
|
|
def dump_it(*args, **kwargs):
|
|
|
|
print(args)
|
|
|
|
print(kwargs)
|
|
|
|
|
|
|
|
# Any number of positional arguments or keyword arguments will work here
|
|
|
|
dump_it(1, 2, 3, color='blue')
|
|
|
|
# (1, 2, 3)
|
|
|
|
# {'color': 'blue'}
|
|
|
|
|