Python ‘If not’ syntax [duplicate]
Each Answer to this Q is separated by one/two green lines.
I’m a bit confused about how/why so many python developers use if not
in their conditional statements.
for example, lets say we had a function,
def foo(bar = None):
if not bar:
bar = 2
But why go about this way? I mean, wouldn’t doing if bar != None
or if bar is not None
be more explicit? What does if not
try to say?
Yes, if bar is not None
is more explicit, and thus better, assuming it is indeed what you want. That’s not always the case, there are subtle differences: if not bar:
will execute if bar
is any kind of zero or empty container, or False
.
Many people do use not bar
where they really do mean bar is not None
.
The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .