I found this kind of expression several times in a python program:
if variable is not None:
dothings(variable)
It seems strange to me, and I think that it has no more sense than:
if variable:
dothings(variable)
Maybe I don't know Python enough, and the expression is explained somewhere?
variable
could be 0
, or False
, or []
, or ()
; be 'falsy' in other words, and then the if
statement would be skipped.
See Truth testing for more detail on what is considered false in a boolean context.
In short, testing if variable is not None
allows variable
to be anything else, including values that would otherwise be considered False in a boolean context.
Some values are falsy, but are not None
. You may still want to dothings()
to those values.
Here are the things that are falsy in Python 2. (You may want to change the '2' in the URL to a '3' to get the values for Python 3, but it didn't change much.)
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