In PHP you use the ===
notation to test for TRUE
or FALSE
distinct from 1
or 0
.
For example if FALSE == 0
returns TRUE
, if FALSE === 0
returns FALSE
. So when doing string searches in base 0 if the position of the substring in question is right at the beginning you get 0
which PHP can distinguish from FALSE
.
Is there a means of doing this in Python?
In Python,
The is
operator tests for identity (False is False
, 0 is not False
).
The ==
operator which tests for logical equality (and thus 0 == False
).
Technically neither of these is exactly equivalent to PHP's ===
, which compares logical equality and type - in Python, that'd be a == b and type(a) is type(b)
.
Some other differences between is
and ==
:
{} == {}
, but {} is not {}
(and the same holds true for lists and other mutable types)a = {}
, then a is a
(because in this case it's a reference to the same instance)"a"*255 is not "a"*255"
, but "a"*20 is "a"*20
in most implementations, due to how Python handles string interning. This behavior isn't guaranteed, though, and you probably shouldn't be using is
in this case. "a"*255 == "a"*255
and is almost always the right comparison to use.12345 is 12345
but 12345 is not 12345 + 1 - 1
in most implementations, similarly. You pretty much always want to use equality for these cases.if something is False:
is what you should do
if something is None:
also works
the moral is use is
... (although you should never do something is 123457
, or simillar)
for why you should never do this with ints and things see http://ideone.com/iKmWCn
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With