Asterisks have lots of meaning in Python. Firstly, consider in a function definition
>>> def function(arg, *vargs, **kargs): print arg print vargs print kargs >>> function(1, 2,3,4,5, test1="abc", test2="def") 1 (2, 3, 4, 5) {'test1': 'abc', 'test2': 'def'}
- *vargs puts all left-over non-keyword arguments into a tuple called vargs.
- **kargs puts all left-over keyword arguments into a dictionary called kargs.
On the other hand, you can use the asterisk with a tuple when calling a function to expand out the elements of the tuple into positional arguments
>>> def function(arg1, arg2, arg3): print arg1, arg2, arg3 >>> args = (1,2,3) >>> function(*args) 1 2 3
You can do a similar thing with keyword arguments and a dictionary with the double asterisk operator
>>> def function(arg1=None, arg2=None): print arg1, arg2 >>> dict = {"arg1":"1", "arg2":"2"} >>> function(**dict) 1 2