Read evaluation order and operator precedence
So in your example:
You did not confirm but, I would assume these are functions from operator module, although there is no
So, first of all, your example is invalid, because all these functions expect 2 arguments. e.g. mul(3) will throw error
Quote:Python evaluates expressions from left to right. Notice that while evaluating an assignment, the right-hand side is evaluated before the left-hand side.
So in your example:
- it will first evaluate
3
, resulting in 3
- then it will evaluate
multi(3)
- this will throw error ifmulti
expects 2 arguments, see below
- then it will evaluate
add(result from multi(3))
- then it will assign the result from item 3 to
a
- then, on next line, it evaluate
a
- first term on the right-hand side.
- then it will evaluate a+3
- then it will evaluate
div(result from a + 3)
- then it will evaluate mod(result from div(result from a + 3))
- then it evaluate 12
- then it will evaluate sub(12)
- then it will evaluate
a + result from mod(result from div(result from a + 3)) = result from sub(12)
- then will assign the result to
a
You did not confirm but, I would assume these are functions from operator module, although there is no
multi
, but mul
.So, first of all, your example is invalid, because all these functions expect 2 arguments. e.g. mul(3) will throw error
>>> from operator import mul >>> mul(3) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: mul expected 2 arguments, got 1
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs