python中以下语句的含义是什么:
x = variable_1 or 0
variable_1是一个对象。上面有什么价值x?什么是类型x?
如果variable_1 计算结果为False,则 x 设置为0,否则为variable_1
把它想象成
if variable_1:
x = variable_1
else:
x = 0
x如果评估为假,0则为variable_1,否则为variable_1
>>> 'abc' or 0
'abc'
>>> '' or 0
0
>>> ['a', 'b', 'c'] or 0
['a', 'b', 'c']
>>> [] or 0
0
xvariable_1如果它的值不是None或将被初始化为False
简单的例子:
>>> a = None
>>> b = 2
>>> a or 0
0
>>> b or 0
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_1(int因为 0 是int)。