[Python] 0 in (False,) // 0 == False

Pietro Battiston toobaz a email.it
Ven 5 Feb 2010 18:21:19 CET


Il giorno ven, 05/02/2010 alle 17.53 +0100, Daniele Varrazzo ha scritto:
> On Fri, 05 Feb 2010 17:39:46 +0100, Pietro Battiston <toobaz a email.it>
> wrote:
> 
> > Per carità, dal punto di vista storico è chiaro, e non sto neanche
> > facendo una battaglia perché si cambi: vorrei solo che si riconoscesse
> > che non c'è nessun motivo assoluto per cui debba essere così.
> 
> Ok, non c'era nessun motivo assoluto per cui dovesse essere così. Su
> questo hai ragione.
> 
> Si sarebbe potuto fare:
> 
> bool == int è sempre falso
> bool != int è sempre vero
> bool <, >, <=, >= int spara un'eccezione

Solo in Python 3 :-)

Pietro

> int(True) = 1
> int(False) = 0
> bool op int = int(bool) op int per ogni op aritmetica.
> 
> Se invece i tipi funzionano con la semantica attuale è solo per
> convenzione e utilità. Se questa semantica è implementa come subclass è
> solo per comodità di implementazione.
> 





Maggiori informazioni sulla lista Python