26

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

x = variable_1 or 0

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

4

4 回答 4

29

如果variable_1 计算结果为False,则 x 设置为0,否则为variable_1

把它想象成

if variable_1:
  x = variable_1
else:
  x = 0
于 2012-08-31T10:25:36.823 回答
22

x如果评估为假,0则为variable_1,否则为variable_1

>>> 'abc' or 0
'abc'
>>> '' or 0
0
>>> ['a', 'b', 'c'] or 0
['a', 'b', 'c']
>>> [] or 0
0
于 2012-08-31T10:25:20.717 回答
4

xvariable_1如果它的值不是None或将被初始化为False

简单的例子:

>>> a = None
>>> b = 2
>>> a or 0
0
>>> b or 0
2
于 2012-08-31T10:27:39.427 回答
2
x = variable_1 or 0

这意味着如果variable_1评估为False(即它被认为是“空的” - 请参阅魔法方法的文档__nonzero__),则0分配给x.

>>> variable_1 = 'foo'
>>> variable_1 or 0
'foo'
>>> variable_1 = ''
>>> variable_1 or 0
0

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

类型x是或类型variable_1int因为 0 是int)。

于 2012-08-31T10:30:04.107 回答