As a recent graduate in computer science, I really probably should have known this, but today I learned. This morning as the team and I were discussing some new methods and software to write the discussion came up about what were the args
and **kwargs
we so often see in method declarations within Python. Off to the Internet we went and found a <a title="args and **kwargs?" href="http://stackoverflow.com/q/3394835/575985" target="_blank">perfect explanation from none other than StackOverflow.
Turns out *args
and **kwargs
are arguments given to a method. Now, we all knew this to be true, this was not the interesting part. The interesting thing to me was that you can put these in your method declarations if you want it to accept varying lengths of arguments rather than explicitly defined ones. Very cool indeed.
Now, I've used arguments a lot in computer science especially command line arguments when writing small assignments for classes. I knew these were passed in as args
but was unsure of what the **kwargs
were. From the StackOverflow answer they are both sets of arguments except the difference is that args
is an ordered list of values while **kwargs
is a dictionary key-pair or key word arguments. So passing in either a list or a dictionary will allow us to use these variables to allow our methods to take any number of arguments.
Probably should have known that. Probably should have a deeper and better understanding of it. I'm just getting started. You learn something new everyday.
-Eric