这个Python表达式有意义吗?

Zhe*_*hen 5 python logic expression

我在python程序中多次发现这种表达式:

if variable is not None:
    dothings(variable)
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎很奇怪,我认为它没有比以下更有意义了:

if variable:
    dothings(variable)
Run Code Online (Sandbox Code Playgroud)

也许我不太了解Python,并且表达式在某处被解释了?

Mar*_*ers 14

variable可能是0,或False,或[],或(); 换句话说,就是"虚假",然后if会跳过声明.

有关布尔上下文中被视为false的更多详细信息,请参阅真值测试.

总之,如果测试variable is not None可以variable任何东西,包括原本在布尔环境被认为是假值.


koj*_*iro 5

有些值是假的,但不是None.你可能仍然想要dothings()那些价值观.

以下是Python 2 中伪造的东西.(您可能希望将URL中的'2'更改为'3'以获取Python 3的值,但它没有太大变化.)