On 2018-04-04 00:34, Ethan Furman wrote:
This behavior was recently brought to my attention [1]:

--> 1 in 'hello'
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
TypeError: 'in <string>' requires string as left operand, not int

However, in any other collection (set, dict, list, tuple, etc), the answer 
would be False.

Does anyone remember the reason why an exception is raised in the string 
instance instead of returning False?

Well, strings aren't really a collection like set, etc, which can contain various types, even a mixture of types.
A string can contain only strings (including codepoints).

A bytestring can contain only bytestrings and ints (and there's been debate on whether the latter was a good idea!).
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to