Explicitly raise an exception in __cmp__ -- this clarifies that cmp()

is not supported on sets.  (Unfortunately, sorting a list of sets may
still return random results because it uses < exclusively, but for
sets that inly implements a partial ordering.  Oh well.)
This commit is contained in:
Guido van Rossum 2003-01-14 16:45:04 +00:00
parent 8bb90a59a6
commit 50e92235e7
2 changed files with 9 additions and 0 deletions

View File

@ -102,6 +102,11 @@ class BaseSet(object):
"""
return self._data.iterkeys()
# Three-way comparison is not supported
def __cmp__(self, other):
raise TypeError, "can't compare sets using cmp()"
# Equality comparisons using the underlying dicts
def __eq__(self, other):

View File

@ -78,6 +78,10 @@ Extension modules
Library
-------
- The sets module now raises TypeError in __cmp__, to clarify that
sets are not intended to be three-way-compared; the comparison
operators are overloaded as subset/superset tests.
- Bastion.py and rexec.py are disabled. These modules are not safe in
Python 2.2. or 2.3.