On 2014-06-09 16:34, Roy Smith wrote:
We noticed recently that:

None in 'foo'

raises (at least in Python 2.7)

TypeError: 'in <string>' requires string as left operand, not NoneType

This is surprising.  The description of the 'in' operatator is, 'True if an 
item of s is equal to x, else False '.  From that, I would assume it behaves as 
if it were written:

for item in iterable:
     if item == x:
         return True
else:
     return False

why the extra type check for str.__contains__()?  That seems very unpythonic.  
Duck typing, and all that.

When working with strings, it's not entirely the same. For example:

>>> 'oo' in 'foo'
True

If you iterated over the string, it would return False.

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to