私はコード内でreturn l1 or l2
を使用している誰かを見て、l1とl2の両方がリストオブジェクトにリンクされていることを知るまで、これらの2つのシングルトン値を理解したと思っていました。 l2。Pythonの `NoneまたはFalse`、` FalseまたはNone`、 `NoneおよびFalse`、` FalseおよびNone`の結果を理解するにはどうすればいいですか?
このコードはかなり短くて分かりやすいので、良いコードです。次に、ここで何が起こっているのか把握するためのコードを書きます。
print (True or 'arbitrary') #True
print (False or 'arbitrary') #arbitrary
print (None or 'arbitrary') #arbitrary
印刷結果は期待通りです。しかし、私はNone
とFalse
を一緒に入れようとします。本当に奇妙なことが起こった。
print (False or None) #None
print (None or False) #False
print (None or False or True) #True
だから、私の推測では、return A or B
のルールは以下のとおりです。(その後、まずAとB)
順に復帰最初の真(ないなし、未偽)値
True値がない場合は、最後の値が返されます。
最後に、このコードを実行して推測を確認します。
print (None or False or True or None) # True
print (None or False or None) # None
print (False or None or False) # False
結果は私の理論を証明するようです。しかし、誰ももっと説明をしていますか?
また、and
を使用すると面白いことがあります。どうして?
print (None and False) #None
print (False and None) #False
[FalseまたはNone対False]の可能な複製(https://stackoverflow.com/questions/3914667/false-orone-vs-none-or-false) – Galen