Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Is Python really pulling a syntactic trick?

I think < is simply left associative: True < 4 is True.

Similarly, I think > is right associative. (50 > 30) > 10 does not hold, but 50 > (30 > 10) holds.



Yes it is really pulling a syntactic trick and not comparing against bools. From the docs:

Comparisons can be chained arbitrarily, e.g., x < y <= z is equivalent to x < y and y <= z, except that y is evaluated only once.

http://docs.python.org/reference/expressions.html#notin


    randall@gulch:~$ python -c 'print 1 < 2 < 4'
    True
    randall@gulch:~$ python -c 'print 1 < 5 < 4'
    False


In Python True==1, unfortunatelly.

  >>> True + True
  2
Simple left-associativity would also make 3<4<2 evaluate to True.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: