So here I'm gonna explain what are the *args and **kwargs, and what is their use of it. let's Begin
You can *args and **kwargs are the magic variables. so first of all it is not necessary to write *args and **kwargs, and only an asterisk (*) is needed also you can write *something and **somethings. it is just for understanding we take *args and **kwargs
*args:
Assume we have a function name sum which takes two parameters X and Y and this function return sum of those two values. function code is below:
now we need function which can give us sum of three values so what if we pass three arguments in this function?
TypeError: sum() takes exactly 2 arguments (3 given)
So we need to change our function definition but how many times have you will change it?
so for this type of situation, there is a magic variable called *args
function definition using *args is below:
so this was basic knowledge about *args, I hope you understand the use of *args, Now let's move on to **kwargs
**kwargs:
You should use **kwargs if you want to handle named arguments in a function, let me explain with example.
So as you can see we handle a bunch of arguments with help of **kwargs so this was basically about **kwargs.
Remember When we are using *args then Extra parameters (which *args handling those parameter) are stored in tuple and **kwargs stored those arguments in dictionary (as there are key,value pair)
If you want to use them both and want some other must-pass parameter in function then the order would like this -- def func(other,*args,**kwargs)
When to use them?
There are lot of use of *args and **kwargs . the most common use is in making function decorators.
and also these are use in Monkey Patching (modifying code at run time)
So that was all basics about *args and **kwargs
Thank You 😊😊
Comments
Post a Comment