What does the Double Star operator mean in Python? - GeeksforGeeks

26 Nov, 2020
Double Star or (**) is one of the Arithmetic Operator (Like +, -, *, **, /, //, %) in Python Language. It is also known as Power Operator.
Arithmetic operators follow the same precedence rules as in mathematics, and they are: exponential is performed first, multiplication and division are performed next ,followed by addition and subtraction.
Arithmetic operators priorities order in Decreasing Mode:
()   >>   **   >>   *  >>  /  >>  //  >>  %   >>   +   >>   -

As Exponentiation Operator
For numeric data types, double-asterisk (**) is defined as an Exponentiation Operator:
Example:
Python3
# Python code to Demonstrate the Exponential Operactor  a = 2b = 5  # using double asterisk operatorc = a**bprint(c)    # using double asterisk operatorz = 2 * (4 ** 2) + 3 * (4 ** 2 - 10)print(z)
Output:
32
50
As arguments in functions and methods
In a function definition, the double asterisk is also known  **kwargs. They used to pass a keyword, variable-length argument dictionary to a function. The two asterisks (**) are the important element here, as the word kwargs is conventionally used, though not enforced by the language.
First, let’s simply print out the **kwargs arguments that we pass to a function. We’ll create a short function to do this:
Python3
# Python Program to create a function to get a dictionary of names.# Here, we will start with a dictionary of three names    def function(**kwargs):    for key, value in kwargs.items():        print("The value of {} is {}".format(key, value))    function(name_1="Shrey", name_2="Rohan", name_3="Ayush")
Output:
The value of name_1 is Shrey
The value of name_2 is Rohan
The value of name_3 is Ayush
Now here is another example where we will pass additional arguments to the function to show that **kwargs will accept any number of arguments:
Python3
# Python Program to create a function to get a dictionary of as many names# you want to include in your Dictionary    def function(**kwargs):    for key, value in kwargs.items():        print("The value of {} is {}".format(key, value))    function(    name_1="Ayush",    name_2="Aman",    name_3="Harman",    name_4="Babber",    name_5="Striver",)
Output:
The value of name_1 is Ayush
The value of name_2 is Aman
The value of name_3 is Harman
The value of name_4 is Babber
The value of name_5 is Striver
Using **kwargs provides us with the flexibility to use keyword arguments in our program. When we use **kwargs as a parameter, we don’t need to know how many arguments we would eventually like to pass to a function. Creating functions that accept **kwargs are best used in situations where you expect that the number of inputs within the argument list will remain relatively small.
Python-Operators
Technical Scripter 2020
Python
Technical Scripter
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
How to Install PIP on Windows ?
How to drop one or multiple columns in Pandas Dataframe
How To Convert Python Dictionary To JSON?
Check if element exists in list in Python
Python | Pandas dataframe.groupby()
Defaultdict in Python
Python | Get unique values from a list
Python Classes and Objects
Python | os.path.join() method
Create a directory in Python