[Python-ideas] set.add could return True or False

Matt Joiner anacrolix at gmail.com
Wed Mar 14 19:29:27 CET 2012


I should not have emphasized the atomicity here, this was not intended to
be the main reason.
On Mar 15, 2012 2:11 AM, "Chris Rebert" <pyideas at rebertia.com> wrote:

> On Wed, Mar 14, 2012 at 10:53 AM, Masklinn <masklinn at masklinn.net> wrote:
> > On 2012-03-14, at 18:36 , Matt Joiner wrote:
> >> set.add(x) could return True if x was added to the set, and False if x
> >> was already in the set.
> >
> > That does not mesh with the usual Python semantics of methods either
> > having a side-effect (mutation) or returning a value. Why would that
> > happen with sets but not with e.g. dicts?
>
> The rule is a bit more complicated than that (e.g. consider
> list.pop()). It's gets fleshed out well in:
> http://bugs.python.org/issue12192
>
> set.remove() arguably "returns" the same sort of indication as that
> which is proposed, in that it either raises or doesn't raise KeyError
> depending on whether the value was present.
>
> But yeah, these boolean return values aren't of huge utility,
> particularly in the multithreaded case.
>
> Cheers,
> Chris
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20120315/07317fa7/attachment.html>


More information about the Python-ideas mailing list