どちらが良いですか? (その理由は?)Falseを確認する正しい方法は何ですか?
if somevalue == False:
または
if somevalue is False:
somevalue
が文字列であれば、あなたの答えを変更していますか?
どちらが良いですか? (その理由は?)Falseを確認する正しい方法は何ですか?
if somevalue == False:
または
if somevalue is False:
somevalue
が文字列であれば、あなたの答えを変更していますか?
むしろことができるものsomevalue
によって異なります。これはFalse
がシングルトンであることに依存しない
if isinstance(somevalue, bool) and not somevalue
:somevalue
あなたはそれがboolean型とnot
だことを確認できた何もすることができれば。
if somevalue is False
しかしのPythonのPEP8は、あなたがクラスについて、それならば気にしてばかり使用してはならない状態::
if not somevalue
このそれは常にあなたも行うことができますシングルトンである場合somevalue
が「偽」かどうかを評価します。 Python documentation on Truth value testingを参照してください。
PEP8状態:
は、TrueまたはFalseが==使用してブール値を比較しないでください。
及びこれらの例を示します:にあなたのケースに変換します
Yes: if greeting:
No: if greeting == True:
Worse: if greeting is True:
:
Yes: if not greeting:
No: if greeting == False:
Worse: if greeting is False:
は、各文字列が空の文字列''
除い "truthy" と見なされることに注意してください。
is
は、2つのオブジェクトが文字通りという同じオブジェクトであるかどうかを確認しています。 ==
が一致を確認しています。
何かが間違っているかどうかを確認する場合は、次のようにします。 ゼロ、True
とは反対に、if something == False
となります。
コメントに記載されているように、確かにif not something
を行うことができますが、読みやすさはかなり向上するかもしれませんが、それはif bool(something) == False
と同じです。
私の心に、True
とFalse
が真か偽であるという点にだけ1
と0
のように振る舞うべきです、ので、私は、平等を好みます。たとえば("a" == "a") == False
は("a" == "a") == 0
のようにFalse
と評価されます。
音があまりにも習熟しています。 – firegurafiku
'if not somevalue:'と書くのですが、ブール型でない場合は、 '' not '' ': '' '' '== False:' 'は実行しません。 – rodrigo
一般に、Pythonではオブジェクトを 'False' /' True'と明示的に比較しません。ちょうど 'somevalue:'もしあれば 'somevalueなら'でも ' –