From: Raymond Hettinger Date: Tue, 5 Sep 2017 16:40:44 +0000 (-0700) Subject: Conceptually, roots is a set. Also searching it as a set is a tiny bit faster (... X-Git-Tag: v3.7.0a1~149 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=15ce0bee973596f02983f39e1a1b172b91e9cdda;p=python Conceptually, roots is a set. Also searching it as a set is a tiny bit faster (#3338) --- diff --git a/Lib/functools.py b/Lib/functools.py index 0873f20715..23ad160930 100644 --- a/Lib/functools.py +++ b/Lib/functools.py @@ -193,7 +193,7 @@ _convert = { def total_ordering(cls): """Class decorator that fills in missing ordering methods""" # Find user-defined comparisons (not those inherited from object). - roots = [op for op in _convert if getattr(cls, op, None) is not getattr(object, op, None)] + roots = {op for op in _convert if getattr(cls, op, None) is not getattr(object, op, None)} if not roots: raise ValueError('must define at least one ordering operation: < > <= >=') root = max(roots) # prefer __lt__ to __le__ to __gt__ to __ge__