15

次のコードが正しいのはなぜですか?

>>> foo = {}
>>> foo > 1
True
>>> foo < 1
False
>>> foo == 0
False
>>> foo == -1
False
>>> foo == 1
False

私が望んでいたのは len(foo) > 1 だったことは理解していますが、初心者としてこれには驚きました。

4

3 に答える 3

7

互換性のないタイプ間の豊富な比較は、python2.x のタイプの名前 (?) に基づいており、python3.x では許可されていません。

いずれにせよ、python2.x では、特定の python 実装とバージョンに対して同じ結果が得られる順序付けが保証されていますが、順序付け自体は定義されていません。

于 2013-06-24T20:20:31.937 に答える