Python 3 では、文字列と int (例: ) を並べ替えようとすると1 > "1"
、TypeError がスローされます。文字列を int と比較して等しいかどうかを調べてもエラーが発生しないのはなぜですか? (例1=="1"
) 文字列を int と比較することが理にかなっている例は何ですか? JavaScript と SQL が異なるアプローチを取るのはなぜですか?
質問する
1459 次
3 に答える
7
これにより、たとえば、混合タイプのキーを含む辞書を作成できます。
比較できず1
、"1"
平等である場合、それらを同じ辞書のキーとして使用することはできません。
現状では、それらを比較することができ、それらは常に等しくないものを比較します:
オブジェクトは同じタイプである必要はありません。両方が数値の場合、それらは共通のタイプに変換されます。それ以外の場合、異なるタイプのオブジェクトは常に等しくなく、一貫して、しかし任意に順序付けられます。
于 2012-05-16T11:42:28.420 に答える
6
TypeError
比較不可能なオブジェクトで順序付けが発生する理由は、それが役立つかどうかについての予測ではなく、賢明な答えがないことを表すためです。この論理では、「2 つの比較不可能なオブジェクトは等しいか」という答えがある限り、同等性テストを許可することは理にかなっています。(そうではありません)。たとえば、http://www.gossamer-threads.com/lists/python/dev/919516を参照してください。
于 2012-05-16T11:55:54.763 に答える