比較演算はすべてのオブジェクトがサポートしています。すれらすべては同じ優先順位を持っています(それはブーリアン演算より高い優先順位を持ちます)。 比較は自由に連結できます。例えば、x < y <= z は x < y and y <= z と、y が一度だけ評価されることを除いて同じです。(ただし、どちらの場合もzはx < yが偽と判ったときは評価されません。)
この表は比較演算を要約したものです。
演算 | 意味 | 注 |
---|---|---|
< |
より小さい | |
<= |
より小さいまたは等しい | |
> |
より大きい | |
>= |
より大きいまたは等しい | |
== |
等しい | |
<> |
等しくない | (1) |
!= |
等しくない | (1) |
is |
オブジェクトの同一性 | |
is not |
オブジェクトの同一性の否定 |
注:
異なるタイプのオブジェクトは数値タイプを除いて比較対象になりません。 そのようなオブジェクトは首尾一貫していますが、任意の順序に順序付けられます。 (そのため異なるタイプの要素から成る配列をソートすると一貫した結果となります。) さらに、いくつかのタイプ(例えばwindows)は縮退した比較概念(そのタイプのオブジェクトはどの2つをとっても等しくない)のみをサポートしています。 また一方そのようなオブジェクトは任意ですが、首尾一貫して順序付けられます。
(実装に関する注:数値以外の異なるタイプのオブジェクトはそのタイプ名で順序付けられます。適切な比較をサポートしていない同じタイプのオブジェクトはそのアドレスで順序付けられます。)
同じ文法上の優先順位を持つもう2つの演算("in" と "not in")は、 シーケンスタイプによってのみサポートされています。(後ほど)
guido@python.org