Python的if not语法

Python 'If not' syntax

本问题已经有最佳答案,请猛点这里访问。

我有点困惑,为什么这么多的Python开发人员在条件语句中使用if not

例如,假设我们有一个函数,

1
2
3
def foo(bar = None):
    if not bar:
        bar = 2

但是为什么要这样?我的意思是,做if bar != Noneif bar is not None不是更明确吗?if not想说什么?


是的,如果这确实是你想要的,那么if bar is not None就更明确,因此更好。这并不总是如此,有一些细微的区别:如果bar是任何类型的零或空容器,或False时,if not bar:将执行。许多人确实使用not bar,他们真正的意思是bar is not None