[Tutor] Defining "bit" type -- why not '!' ?
Lie Ryan
lie.1296 at gmail.com
Fri Jan 30 07:09:08 CET 2009
On Thu, 29 Jan 2009 12:22:29 +0000, Alan Gauld wrote:
> "spir" <denis.spir at free.fr> wrote
>
>> Here is an overal and a trial to introduce my view on this topic.
> ...
>> * The mix of "extended logic" on non-logical types and treating
>> integers
>> as bit sequences provakes a kind of conceptual collision.
>> * As a solution, bitwise operations may apply only to a type (byte or
>> int)
>> on which "extended logic" raises an TypeError.
>
> You are probably correct but it would break a ton of working code!
> Especially when you recall that bool types were only introduced
> relatively recently so a lot of old code relies on the fact that
> True/False were until then literally 1/0.
>
> Maybe it is "improved" in Python 3. As you say the ~ operator makes most
> sense if applied to bytes only. But for compatibility reasons I suspect
> they have kept it as-is...
I think it's an unnecessary complication. In programming we have to
remember that the decimal numbers we see are really just a user-friendly
view of the bit patterns used in the CPU. These bit patterns are used in
arithmetic and bit-wise operations (logical operation is a much higher
concept, AFAIK no CPU implements hardware logical operation).
More information about the Tutor
mailing list