私はPythonプログラムでこの種の式を数回見つけました:
if variable is not None:
dothings(variable)
私には奇妙に思えますが、それ以上の意味はないと思います。
if variable:
dothings(variable)
たぶん私はPythonを十分に知らず、式はどこかで説明されていますか?
私はPythonプログラムでこの種の式を数回見つけました:
if variable is not None:
dothings(variable)
私には奇妙に思えますが、それ以上の意味はないと思います。
if variable:
dothings(variable)
たぶん私はPythonを十分に知らず、式はどこかで説明されていますか?
variable
、、、、、、、0
または; False
_ []
_ ()
言い換えれば、「偽り」であると、if
ステートメントはスキップされます。
ブール値のコンテキストで偽と見なされるものの詳細については、真理テストを参照してください。
要するに、ブール値のコンテキストでFalseと見なされる値を含め、他の何かvariable is not None
を許可variable
するかどうかをテストします。
一部の値は偽物ですが、そうではありませんNone
。あなたはまだdothings()
それらの値にしたいかもしれません。
Python 2で間違っている点は次のとおりです(Python 3の値を取得するには、URLの「2」を「3」に変更することをお勧めしますが、あまり変更されていません)。
例えば
i = 0
if i is not None:
print i # prints i
if i:
print i # prints nothing
google voice pythonの実装でも、これに出くわしました。それらの使用は、関数呼び出し中に行われました。パラメータはデフォルトで「なし」に設定されており、関数が呼び出されると、値が変更されているかデフォルトであるかを確認できます。IE
def login (user=None, password=None)
if user is None:
user = input('Please enter your username');
...
return <something>;
によって呼び出されます
login()
また
login(user='cool_dude')
また
希望するユーザー/パスワードの任意の組み合わせ。
さらに、ロジックの「更新」は、変数==trueまたはfalseを意味します。これはすべての場合に正しいわけではありません(場合によっては機能する可能性がありますが、一般的なケースではないため、それらを破棄します)。「NONE」ロジックを使用してテストしているのは、変数にNONE以外のものが含まれているかどうかです。私が上で言ったことと同様に、「ログイン機能」が行っていたのは、値が有効かどうかなどではなく、ユーザーが何かを渡したかどうかを判断することだけでした。