What does the Double Star operator mean in Python?
Double Star or (**) is one of the Arithmetic Operator (Like +, -, *, **, /, //, %) in Python Language. It is also known as Power Operator.
What is the Precedence of Arithmetic Operators?
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.
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course
Arithmetic operators priorities order in Decreasing Mode:
() >> ** >> * >> / >> // >> % >> + >> -
Uses of Double Star operator:
As Exponentiation Operator
For numeric data types, double-asterisk (**) is defined as an Exponentiation Operator:
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:
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:
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.