Синтаксис Python 'If not'
Я немного запутался в том, как/почему так много разработчиков python используют if not
в своих условных операторах.
например, допустим, что у нас есть функция,
def foo(bar = None):
if not bar:
bar = 2
Но зачем идти этим путем? Я имею в виду, что бы не делать if bar != None
или if bar is not None
более явным? Что говорит if not
сказать?
Ответы
Ответ 1
Да, if bar is not None
более явный и, следовательно, лучше, если предположить, что это действительно то, что вы хотите. Это не всегда так, есть незначительные отличия: if not bar:
будет выполняться, если bar
- любой пустой или пустой контейнер, или False
.
Многие люди используют not bar
, где они действительно означают bar is not None
.