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