重複の可能性:
Python の「is」演算子が整数に対して予期しない動作をする
今日、私は自分のプロジェクトをデバッグしようとしましたが、数時間分析した後、次のようになりました。
>>> (0-6) is -6
False
しかし、
>>> (0-5) is -5
True
理由を説明していただけますか?おそらく、これはある種のバグまたは非常に奇妙な動作です。
> Python 2.7.3 (default, Apr 24 2012, 00:00:54) [GCC 4.7.0 20120414 (prerelease)] on linux2
>>> type(0-6)
<type 'int'>
>>> type(-6)
<type 'int'>
>>> type((0-6) is -6)
<type 'bool'>
>>>