[Pythonmac-SIG] Re: precedence bug?
Christopher Smith
csmith@blakeschool.org
Fri, 08 Feb 2002 21:56:06 -0600
mday@mac.com writes:
>On Friday, February 8, 2002, at 03:36 PM, Christopher Smith wrote:
>
>> The python reference (ref/summary.html) it says that 'negation' and
>> 'bitwise not' have higher precedence than exponentiation but this is n=
ot
>> born out by the interpreter (MacPython 2.2):
>
>I think you're reading the table wrong. To quote that page:
>
>> The following table summarizes the operator precedences=A0in Python, f=
rom=20
>> lowest precedence (least binding) to highest precedence (most binding).
>
>And note that exponentiation is listed *after* bitwise not and=20
>negative. That means that exponentiation has higher precedence (since=20
>it comes later in the table).
Hmmm...here it is (the reference section 5.12) in the 2.1 documents:
** Exponentiation
+x, -x Positive, negative
~x Bitwise not
and here it is in the 2.2 docs:
+x, -x Positive, negative
~x Bitwise not
** Exponentiation
I thought I actually had checked that it was the same in the 2.2 docs but
I see that I must have looked a the same set of docs (the 2.1 version)
twice. Can anyone confirm that the behavior didn't change between
versions and that the documentation was just changed to reflect the actua=
l
behavior?
I guess I would still favor not relying on the precedence rules here and
go for ease of reading and say it explicitly: -(a**2) or (-a)**2.
/c