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
x
variable_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
)。