is
演算子がid()比較を行っていると思っていた(誤っているかもしれません)。Pythonで 'is'演算子は何をしますか?
>>> x = 10
>>> y = 10
>>> id(x)
1815480092
>>> id(y)
1815480092
>>> x is y
True
しかし、val is not None
では、そう簡単ではないようです。
>>> id(not None)
2001680
>>> id(None)
2053536
>>> val = 10
>>> id(val)
1815480092
>>> val is not None
True
次に、 'is'演算子は何ですか?ちょうど私が推測したオブジェクトIDの比較ですか?その場合、val is not None
はPythonでnot (val is None)
と解釈されますか?
はい、「valはNoneではありません」、「not(valはNone)」は[同等]です(http://stackoverflow.com/questions/12941287/does-not-e-in-c-differ-from -e-in-c-in-python)を使用します。しかし、最初のものはより読みやすいIMOです。 –