[Python-Dev] Boolean transition
Samuele Pedroni
pedroni@inf.ethz.ch
Sun, 10 Mar 2002 22:11:53 +0100
[Brian Quinlan]
> [Bunch of arguments combined - and then snipped :-)]
>
> For people who want to do integer arithmetic using Booleans, would
> calling the int() built-in be too much of a burden?
>
> Samuele's example would be written as:
>
> def count_visible(win_list):
> c = 0
> for win in win_list:
> c+= int(win.visible)
> return c
>
> That actually seems clearer to me and it fits with Pythons strongly
> typed nature.
>
>From just the snippet I would wonder whether win.visible is one
of the strings '0' or '1' or a float or a boolean.
If *I* was about to separate bool from int
(but for that I would need to be conviced about the errors
I'm going to avoid with that),
both int(False) and int(True) would fail - I mean - their result
is as much intuitive as summing booleans directly <wink>.
E.g. in VisualWorks (a Smalltalk)
"true asInteger" happily fails.
Also in Scheme and Common Lisp there is no
truthvalue -> 0/1 conversion as a to-integer conversion.
So I would introduce a specific built-in
for that conversion (maybe chi() <wink>).
I'm quite serious, int is too much polymorphic
if your point is not to mix things with booleans.
regards.