[Python-Dev] <int> in <str>
On 2018-04-04 00:34, Ethan Furman wrote:
> This behavior was recently brought to my attention :
> --> 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!).