Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
February 25, 2022 10:25 am GMT

Python Functions *args and **kwargs Structure

Sign up to my newsletter!.

What are *args and **kwargs?

These structures are sometimes used when we do not know the number of parameters to import or the number of parameters varies. Thus, we bring dynamism to our function. Let's show it with an example; For example, let's write a function that sums the entered numbers.

def add(number1, number2):    print(sum([number1, number2]))add(6, 9)

It works very well, so let's add another number, this time add three numbers.

def add(number1, number2):    print(sum([number1, number2]))add(6, 9, 1)
TypeError: add() takes 2 positional arguments but 3 were given

Yes, we got an error because we stated that it can take two parameters while writing the function, so let's fix it.

def add(number1, number2, number3):    print(sum([number1, number2, number3]))add(6, 9, 1)

This is how we fixed it. This is not a correct usage because if I want to add two numbers together again, I will have to change the function again. The function I wrote here is just a function that adds two numbers, but I don't want that. I want to add 2 when I want and 10 when I want. Then we will use *args and **kwargs structures.

Using *args

def add(*args):    print(sum(args))add(6, 9, 1)add(6, 9, 1, 10, 14)# 16# 40

You can now enter as many numbers as you want. No matter how many numbers the function gets, it will do the necessary operations.

Using **kwargs

Yes, we learned what *args is and how to use it. But what is **kwargs? And what is the difference between them? Likewise, we use **kwargs in situations where we do not know how many parameters to use, but **kwargs is based on a key value relationship. Did you remember this from somewhere because this is nothing but the dictionary data type we are talking about. Let's show it with an example.

def printOutput(**kwargs):    print(kwargs)printOutput(number1 = 6, number2 = 9, number3 = 1) # {'number1': 6, 'number2': 9, 'number3': 1}

As you can see, it returned us a dictionary data type as output.

Combining *args and **kwargs

Well, you have a question, can I use *args and **kwags parameters? Let's see now;

def printOutput(*args,**kwargs):    print(kwargs)    print(args)printOutput(6, 9, 1, number = 6, number2 = 9, number3 = 2) # {'number': 6, 'number2': 9, 'number3': 2}# (6, 9, 1)

You might also like

Python Functions
Python File Operations
Python Set and Frozenset
Python dictionary and dictionary methods
Python tuple and tuple methods

Sign up to my newsletter!.


Original Link: https://dev.to/baransel/python-functions-args-and-kwargs-structure-26f2

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To