Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are there sideeffects in python using `if a == b == c: pass;`?

if a == b == c:
    # do something

Let's assume a, b, c are string variables. Are there any possible side effects if I use the snippet above to execute # do something if and only if all three strings are equal?

I am asking because I have to check three variables against each other and I get many cases:

if a == b == c:
    # do something
elif a == b != c:
    # do something
elif a != b == c.
    # do something
etc...

Perhaps there is a better way to code this?

like image 750
Aufwind Avatar asked Jun 10 '11 09:06

Aufwind


2 Answers

From the documentation:

Comparisons can be chained arbitrarily; for example, x < y <= z is equivalent to x < y and y <= z, except that y is evaluated only once (but in both cases z is not evaluated at all when x < y is found to be false).

There should be no side effects.

like image 56
Jeremy Avatar answered Sep 20 '22 10:09

Jeremy


There should be no side effects until you use it in a such way.

But take care about things like:

if (a == b) == c:

since it will break chaining and you will be comparing True or False and c value).

like image 38
Roman Bodnarchuk Avatar answered Sep 17 '22 10:09

Roman Bodnarchuk