2013-05-24 16 views
85

私は、どのように/なぜ多くのPython開発者が条件文にif notを使用するのか、混乱しています。例えばPython 'もしそうでなければ'という構文

、我々は、

def foo(bar = None): 
    if not bar: 
     bar = 2 

を機能を持っていたと言うしかし、なぜこのようについて行くことができますか?つまり、if bar != Noneまたはif bar is not Noneをもっと明示的にしないのですか? if notは何を言おうとしていますか?

+1

この質問はここに表示される前に確認する必要があります。 http://stackoverflow.com/questions/100732/why-is-if-not-someobj-better-than-if-someobj-none-in-python – jlars62

+3

'そうでないなら真実をチェックし、'!= 'は平等をチェックする。 – ecline6

答えて

106

はい、if bar is not Noneはより明示的です。したがって、それが実際にあなたが望むものであると仮定すると、より良いものになります。常にそうとは限りませんが、微妙な違いがあります。barがゼロまたは空のコンテナであればif not bar:が実行されます。Falseです。 多くの人がnot barを使用します。ここで、は実際にはの平均bar is not Noneです。

+0

barが '[]'ならば、それは実行されますか? –

+1

@EdgarAroutiounianはい。同じセットまたは空のセット、タプル、辞書、文字列など – delnan

関連する問題