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

Chris Rebert pyideas at rebertia.com
Wed Mar 14 19:11:07 CET 2012


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



More information about the Python-ideas mailing list