python中“变量或0”是什么意思?

时间:2012-08-31 10:23:28

标签: python variables

python中以下语句的含义是什么:

x = variable_1 or 0

variable_1是一个对象。 x上面有什么价值? x的类型是什么?

4 个答案:

答案 0 :(得分:22)

如果x评估为false,则

0variable_1,否则为variable_1

>>> 'abc' or 0
'abc'
>>> '' or 0
0
>>> ['a', 'b', 'c'] or 0
['a', 'b', 'c']
>>> [] or 0
0

答案 1 :(得分:21)

如果variable_1评估为False,则x设置为0,否则设置为variable_1

将其视为

if variable_1:
  x = variable_1
else:
  x = 0

答案 2 :(得分:4)

x如果其值不是variable_1None

,则会初始化为False

简单的例子:

>>> a = None
>>> b = 2
>>> a or 0
0
>>> b or 0
2

答案 3 :(得分:2)

x = variable_1 or 0

这意味着如果variable_1评估为False(即它被视为“空” - 请参阅魔术方法__nonzero__的文档),则0被分配给{ {1}}。

x

相当于“如果variable_1设置为非空的,则使用其值,否则使用0”。

>>> variable_1 = 'foo' >>> variable_1 or 0 'foo' >>> variable_1 = '' >>> variable_1 or 0 0 的类型是xvariable_1的类型(因为0是int)。