我对如何/为什么这么多python开发人员在条件语句中使用if not
感到有些困惑。
def foo(bar = None):
if not bar:
bar = 2
但为什么要这样呢?我的意思是,if bar != None
或if bar is not None
不会更明确吗? if not
试图说什么?
答案 0 :(得分:169)
是的,if bar is not None
更明确,更好,假设它确实是你想要的。情况并非总是如此,存在细微差别:如果if not bar:
是任何类型的零容器或空容器,或bar
,False
将执行。
很多人确实使用not bar
真正的地方bar is not None
。