On Feb 4, 2010, at 1:36 PM, Alessandro Dentella wrote: > Questo è avvincente come sostegno all'idea che il booleano si comporti comex > un intero. Ne deriva necessariamente che 0 == False? Ovvero: il fatto che > *si comporti come un numero* nell operazioni richiede per necessità che == > dica che sono uguali?
Pensiamo ai comportamenti... 1. 0 e False sono inconfrontabili. Arriva un'eccezione, quindi. In questo caso quindi abbiamo che effettivamente interi e booleani non sono intercambiabili. Sarebbero due tipi completamente distinti. Non e' quello che fa Python. 2. 0==False -> True 3. 0==False -> False Suppongo che sia chiaro che la 3 non porta da nessuna parte. Avremmo degli assurdi completi, roba controintuitiva. Non sono nemmeno difficili da inventare. No, l'unica cosa e' intendere booleani e interi come tipi non confrontabili. Che e' in controtendenza con Python, che impone ordinamento sui tipi. > Credo che la prima parte delle parole di guido indichino di no: > > In an ideal world, bool might be better implemented as a separate > integer type that knows how to perform mixed-mode arithmetic Come non hai capito la mia obiezione, non hai capito il preambolo di Guido. Io ti ho detto che 0 == False non e' *necessariamente* una questione di ereditarieta'. In questo caso funziona perche' bool eredita da int. *Ma* avrebbe potuto essere ottenuto anche altrimenti. In particolare, se int e bool fossero semplicemente duck-typati, la cosa avrebbe dovuto funzionare *ugualmente*. Come nota a margine... non mi sembra tu ti sia stracciato le vesti per 0 == 0L. Il fatto che lo 0 booleano si chiami False non vedo perche' ti dia piu' fastidio. _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python