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

Daniele Varrazzo piro a develer.com
Ven 5 Feb 2010 17:53:01 CET


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
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.

-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com


Maggiori informazioni sulla lista Python