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
[email protected]
http://lists.python.it/mailman/listinfo/python