避免0和其他人计为False

jul*_*ria 2 python

在Python中,有几个值计为False:

>>> if False or None or 0 or 0.0 or '' or [] or {} or set():
...   print 'True :)'
... else:
...   print 'False :('
... 
False :(
Run Code Online (Sandbox Code Playgroud)

所以,在我的代码中的某个地方,我正在做这样的事情:

    some_var = other_var or 'default' # Some default value
Run Code Online (Sandbox Code Playgroud)

other_var可能是None或任何其他价值,如果它None,some_var应该填补'default'.

但是我一直遇到一些麻烦,所以,调试我的代码我发现other_var有时候0(或任何其他值算作False),并且some_var充满了'default'而不是0.

那么,有没有办法完成我正在尝试而不是这样做?

if other_var is None:
    some_var = 'default'
else:
    some_var = other_var
Run Code Online (Sandbox Code Playgroud)

不是有效的答案.

小智 6

还有就是条件表达式(也称为"三元操作")语法:

some_var = 'default' if other_var is None else other_var
Run Code Online (Sandbox Code Playgroud)

快乐的编码.

  • 嗯,我希望这是最好的方法,因为我一直使用这个东西,我不想改变我所有的旧代码! (2认同)