異なる型のオブジェクトを比較するときの Python 2 の動作は混乱を招く可能性がありますが、これは言語仕様で提供される実装の詳細に基づいています。
オブジェクトを比較するとき異なる型の場合、Python 2 は次の順序を使用します:
へ図:
print "100" < "2" # True (lexicographic) print "5" > "9" # False (lexicographic) print "100" < 2 # False (numeric first) print 100 < "2" # True (numeric first, lexicographic second) print 5 > "9" # False (lexicographic) print "5" > 9 # True (numeric first, lexicographic second) print [] > float('inf') # True (non-numeric ordering) print () > [] # True (non-numeric ordering)
この動作は、Python 2 の CPython 実装によって義務付けられています。言語仕様では、異なる型のオブジェクトが「恣意的かつ一貫して」順序付けされ、実装までの詳細を説明します。
Python 3 では、整数と文字列の比較でエラーが発生します。 Python の他の実装でも動作が若干異なる場合があります。
以上がPython 2 は異なるタイプのオブジェクトをどのように比較するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。