"0 in [True,False]" returns True
steve at REMOVETHIScyber.com.au
Tue Dec 13 22:15:28 CET 2005
On Tue, 13 Dec 2005 09:46:30 +0000, Steve Holden wrote:
> Paul Rubin wrote:
>> Steve Holden <steve at holdenweb.com> writes:
>>>The really interesting question your post raises, though, is "Why do
>>>you feel it's necessary to test to see whether a variable is a
>> What's the point of having Booleans, if you can't tell them from integers?
> Booleans are specifically defined as a subtype of int at the C level.
That's an implementation detail, and in fact an explicit decision made,
not a inescapable fact of programming. What you are saying is,
effectively, the point of having bools which are subclasses of ints is
that Guido wanted them that way.
> One might also ask "what's the point of having floats if you can't tell
> them from integers":
But you certainly can:
py> isinstance(True, int)
py> isinstance(0.0, int)
However, you can also ask:
py> isinstance(True, bool)
py> isinstance(1, bool)
py> type(True) == type(1)
but, I believe, using type() is frowned upon.
More information about the Python-list