Sped ._update() method by factoring try/except out of the inner loop.

This commit is contained in:
Raymond Hettinger 2002-08-21 04:12:03 +00:00
parent 9f87293bf5
commit 80d21af614
1 changed files with 5 additions and 4 deletions

View File

@ -280,13 +280,14 @@ class BaseSet(object):
def _update(self, iterable):
# The main loop for update() and the subclass __init__() methods.
# XXX This can be optimized a bit by first trying the loop
# without setting up a try/except for each element.
data = self._data
value = True
for element in iterable:
it = iter(iterable)
while True:
try:
data[element] = value
for element in it:
data[element] = value
return
except TypeError:
transform = getattr(element, "_as_immutable", None)
if transform is None: