mirror of
https://github.com/python/cpython
synced 2024-09-23 05:15:20 +00:00
Sped ._update() method by factoring try/except out of the inner loop.
This commit is contained in:
parent
9f87293bf5
commit
80d21af614
|
@ -280,13 +280,14 @@ def _compute_hash(self):
|
|||
|
||||
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:
|
||||
for element in it:
|
||||
data[element] = value
|
||||
return
|
||||
except TypeError:
|
||||
transform = getattr(element, "_as_immutable", None)
|
||||
if transform is None:
|
||||
|
|
Loading…
Reference in a new issue