python *args and **kwargs explained
You are entering a new codebase, the code looks good, well organized and well commented.
Then you notice a few methods with these weird
then you dive into that function and see it passes those forward to other function or handling those weird params.
So… what are those?
that is the shorthand of accessing an unknown amount of params in the function. For example, let’s create a
def avg_numbers(*args): return sum(args) / len(args) res = sum_numbers(5,1,1,2,6)
So as you can see here, I can pass how many variables I want to the
avg_numbers function and it will be handled properly. You can always use the normal method params with
*args like this example
def first_and_others(first, *args): print(first) print(" ".join(args)) first_and_others("Im First", "the", "rest", "of", "us")
the above function will print:
ImFirst the rest of us
that is for accessing the keyworded params as a dictionary. Lets start with a simple example:
def first_and_second(**kwargs): print(kwargs["first"]) print(kwargs["sec"]) first_and_second(first="sss", sec="cxc")
*args, **kwargsas the variable names, you can use
*big_list, **big_dictit’s only a convention in the python world. What you are forced to have are thos single and double
*kwargsor a mix with the “regular” params we all know