python中以下语句的含义是什么:
x = variable_1 or 0
variable_1
是一个对象。 x
上面有什么价值? x
的类型是什么?
答案 0 :(得分:22)
x
评估为false,则 0
为variable_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_1
或None
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
的类型是x
或variable_1
的类型(因为0是int
)。