[Python-ideas] Non-boolean return from __contains__

Michael Foord fuzzyman at voidspace.org.uk
Sun Jul 25 23:36:34 CEST 2010


On 25 July 2010 22:32, Jack Diederich <jackdied at gmail.com> wrote:

> On Sun, Jul 25, 2010 at 5:20 PM, Bruce Leban <bruce at leapyear.org> wrote:
> > Let me see if I understand this:
> >
> > False in [False]
> >
> > Returns True now but would return False with your change.
>
> Bigtime.  Official side-effects are neat for hacks but bad for
> maintainable code.  You don't know pain until another developer
> complains that you refactored user.is_admin() to no longer return the
> user's object (for the record that happened in perl, but it could in
> python too).  Boolean test operations should return bools



Most of them don't and this can be useful. Why should __contains__ enforce
it when other boolean operations don't? Inconsistency is also bad.



> for the same
> reason that in-place operations should return None.
>


What do you mean by "in-place operations should return None"?

For mutable objects __iadd__ and friends should return self. For immutable
ones they return the new value. Probably I misunderstand what you mean.

Michael



>
> -Jack
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> http://mail.python.org/mailman/listinfo/python-ideas
>



-- 
http://www.voidspace.org.uk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20100725/878fac45/attachment.html>


More information about the Python-ideas mailing list