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
false と評価された場合は になり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
)。