Benjamin Peterson <benja...@python.org> added the comment:

2011/12/28 João Bernardo <rep...@bugs.python.org>:
>
> João Bernardo <jbv...@gmail.com> added the comment:
>
> I see that every other comparison operator (<, >, <=, >=, ==, !=) except for 
> `is` work the way I expect and is able to return anything.
>
> e.g.
>
>>>> numpy.arange(5) < 3
> array([ True,  True,  True, False, False], dtype=bool)
>
> I didn't checked the code (and probably I'm talking nonsense), but seems like 
> the `in` operator has an extra call to `PyObject_IsTrue` that maybe could be 
> dropped?

I'm not sure what you're referring to, but I doubt that would do the job.

>
> Of course it can break code relying on `x in y` being True/False but it would 
> only happen on customized classes.
>
> Another option that won't break code is to add a different method to handle 
> these cases. Something like "__contains_non_bool__", but that'd be a big api 
> change.

And completely hideous.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue13667>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to