スタイルガイドhttp://www.python.org/dev/peps/pep-0008なぜ真==:
の最後のポイントは、Trueまたは==を使用してFalseにブール値を比較しないでください...
を読み込みます。
なぜですか?
編集 ちょうど求めて何イムそれを明確にする(そして、それは、問題自体の指標だ)あなたがあなたのかによっては動作しない場合がありブール値に暗黙的な変換を行っている
if something:
print "something is true"
を書くとき、本当の意味でIMHOこの形式のプログラミングは、それが引き起こす可能性のある副作用のためにお勧めできません。
numberOfApples = -1
if numberOfApples:
print "you have apples" # is not what is intended.
if numberOfApples == True:
print "you have apples" # is also not what is intended.
iHaveApples = numberOfApples > 0
if iHaveApples is True: # Edit: corrected this.. the "is" is better than the ==
print "you have apples" # is correct.
暗黙の変換は論理エラーを偽装します。それでは、スタイルガイドはなぜこれを奨励していますか?
ブールテストに最適なスタイルは、スタイルガイドで最も悪いと分類されています。 numberOfApplesがTrueの場合 の場合: はnumberOfApplesがboolではないことがわかります。 –
次に、xがbool()の型であるかどうかを比較し、TrueまたはFalseの場合はそれを比較します。 –
@PedroWerneckまったく同じです。だからスタイルガイドは、bool_typeが[True | False]の場合、最悪の方法はブールをテストするのが間違っていると言います。実際には最良の方法だからです。 –