On Fri, 12 Dec 2008 22:55:20 +0000, Steven D'Aprano wrote: > On Fri, 12 Dec 2008 21:18:36 +0000, Lie Ryan wrote: >> Personally, I'd prefer VB's version: >> foo IsNot bar >> >> or in pseudo-python >> foo isnot bar >> >> since that would make it less ambiguous. > > "a is not b" is no more ambiguous than "1+2*3". True, there's ambiguity > if you are ignorant of the precedence rules, but that's no worse than > saying that "+" is ambiguous if you don't know what "+" means. > > "What's this 'is' operator??? It's ambiguous, it could mean ANYTHING!!! > Panic panic panic panic!!!" > > *wink* > > You're allowed to assume the normal conventions, and (lucky for me!) > despite being Dutch Guido choose to assume the normal English convention > that "a is not b" means the same as "not (a is b)" rather than "a is > (not b)". That's probably because the use-cases for the second would be > rather rare. > > So given the normal precedence rules of Python, there is no ambiguity. > True, you have to learn the rules, but that's no hardship.
*I* know about the precedence rule, but a newbie or a tired programmer might not. He might want to reverse the truth value of argument b but instead has just reversed the whole expression. Probably in a slightly convoluted code like this: if a is not(b and c): ... -- http://mail.python.org/mailman/listinfo/python-list