On Tue, Sep 4, 2012 at 5:20 PM, Eric Lemoine <eric.lemo...@camptocamp.com> wrote: > On Tue, Sep 4, 2012 at 5:18 PM, Michael Bayer <mike...@zzzcomputing.com> > wrote: >> can't do __contains__ due to Python behavior: >> >> class Foo(object): >> def __add__(self, other): >> return (self, "add", other) >> >> def __contains__(self, other): >> return (self, "contains", other) >> >> f1 = Foo() >> >> assert f1 + 5 == (f1, "add", 5) >> >> assert 5 in f1 == (f1, "contains", 5), 5 in f1 >> >> second assertion fails, it forces a bool() on the result. __nonzero__() is >> required to return True/False/int, I suppose we could make a custom int >> subclass but that's getting really weird. > > > Oh right. Thanks for the explanation.
Actually, I was referring to "contains", not "__contains__". -- Eric Lemoine Camptocamp France SAS Savoie Technolac, BP 352 73377 Le Bourget du Lac, Cedex Tel : 00 33 4 79 44 44 96 Mail : eric.lemo...@camptocamp.com http://www.camptocamp.com -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.