diff options
Diffstat (limited to 'Lib/_abcoll.py')
-rw-r--r-- | Lib/_abcoll.py | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/Lib/_abcoll.py b/Lib/_abcoll.py index 4ce3df4..005f437 100644 --- a/Lib/_abcoll.py +++ b/Lib/_abcoll.py @@ -300,16 +300,6 @@ class MutableSet(Set): self.discard(value) return value - def toggle(self, value): - """Return True if it was added, False if deleted.""" - # XXX This implementation is not thread-safe - if value in self: - self.discard(value) - return False - else: - self.add(value) - return True - def clear(self): """This is slow (creates N new iterators!) but effective.""" try: @@ -330,9 +320,13 @@ class MutableSet(Set): return self def __ixor__(self, it: Iterable): - # This calls toggle(), so if that is overridded, we call the override + if not isinstance(it, Set): + it = self._from_iterable(it) for value in it: - self.toggle(it) + if value in self: + self.discard(value) + else: + self.add(value) return self def __isub__(self, it: Iterable): |