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