> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:python-
> [EMAIL PROTECTED] On Behalf Of c james
> Sent: Friday, February 08, 2008 12:10 PM
> To: [email protected]
> Subject: keyword 'in' not returning a bool?
>
> Try this
>
> >>> sample = {'t':True, 'f':False}
> >>> 't' in sample
> True
> >>> type('t' in sample)
> <type 'bool'>
> >>> 't' in sample == True
> False
>
> Why is this? Now try
> >>> bool('t' in sample) == True
> True
>
> Can someone explain what is going on?
>
>>> ('t' in sample) == True
True
It's operator precedence. 'in' has lower precedence than '=='. Therefore
't' in sample == True
evaluates as
't' in (sample == True)
The real question is why does
't' in (sample == True)
cause an error:
TypeError: argument of type 'bool' is not iterable
while
't' in sample == True
does not?
--
http://mail.python.org/mailman/listinfo/python-list