2.3.3 Confronti

Le operazioni di confronto vengono supportate da tutti gli oggetti. Hanno tutte la stessa priorità (che è più alta di quella delle operazioni booleane). Il confronto può essere concatenato arbitrariamente; per esempio, x < y <= z è equivalente a x < y e y <= z, eccetto che y viene valutato solo una volta (ma in entrambi i casi z non viene valutato affatto quando x < y è falso.

Questa tabella ricapitola le operazioni di confronto:

Operazione  Significato  Note 
< minore  
<= minore o uguale  
> maggiore  
>= maggiore o uguale  
== uguale  
!= diverso (1)
<> diverso (1)
is identità dell'oggetto  
is not negazione dell'identità dell'oggetto  

Note:

(1)
<> e != sono ortografie alternative per lo stesso operatore. != è l'ortografia preferita; <> è obsoleta.

Oggetti di tipi differenti, con le eccezioni di differenti tipi numerici e differenti tipi stringa, non risultano mai utilizzabili nel confronto di uguaglianza; questi oggetti vengono ordinati coerentemente e non invece in modo arbitrario (in modo tale che l'ordinamento di un array eterogeneo fornisca un risultato coerente). Inoltre, alcuni tipi (per esempio i file oggetto) supportano soltanto una nozione degenere del confronto, ove ognuno dei due oggetti di quel tipo sia diseguale. Tali oggetti vengono ordinati arbitrariamente, e non invece in modo coerente. Gli operatori <, <=, > e >=, solleveranno un'eccezione TypeError ogni volta che uno degli operandi risulti un numero complesso.

Le istanze di una classe normalmente si confrontano come non uguali, a meno che la classe non definisca il metodo __cmp__(). Vedete il Manuale di riferimento di Python per informazioni sull'uso di questo metodo ed i suoi effetti sul confronto tra oggetti.

Nota implementativa: Gli oggetti di differenti tipi, con l'eccezione dei numeri, vengono ordinati per il loro nome del tipo; gli oggetti dello stesso tipo che non supportano la proprietà di confronto vengono ordinati per il loro indirizzo.

Altre due operazioni con la stessa priorità sintattica, "in" e "not in", vengono supportate solo dai tipi sequenza (vedete sotto).

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.