[Python-checkins] python/dist/src/Doc/lib libsets.tex, 1.16,
1.17 libstdtypes.tex, 1.175, 1.176
rhettinger at users.sourceforge.net
rhettinger at users.sourceforge.net
Sun Apr 10 19:32:38 CEST 2005
Update of /cvsroot/python/python/dist/src/Doc/lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18846
Modified Files:
libsets.tex libstdtypes.tex
Log Message:
SF bug #1179957: Missing def'n of equality for set elements
Index: libsets.tex
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/lib/libsets.tex,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- libsets.tex 19 Jan 2005 07:24:34 -0000 1.16
+++ libsets.tex 10 Apr 2005 17:32:35 -0000 1.17
@@ -30,7 +30,10 @@
abstract class useful for determining whether something is a set:
\code{isinstance(\var{obj}, BaseSet)}.
-The set classes are implemented using dictionaries. As a result, sets
+The set classes are implemented using dictionaries. Accordingly, the
+requirements for set elements are the same as those for dictionary keys;
+namely, that the element defines both \method{__eq__} and \method{__hash__}.
+As a result, sets
cannot contain mutable elements such as lists or dictionaries.
However, they can contain immutable collections such as tuples or
instances of \class{ImmutableSet}. For convenience in implementing
Index: libstdtypes.tex
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/lib/libstdtypes.tex,v
retrieving revision 1.175
retrieving revision 1.176
diff -u -d -r1.175 -r1.176
--- libstdtypes.tex 9 Feb 2005 23:19:25 -0000 1.175
+++ libstdtypes.tex 10 Apr 2005 17:32:35 -0000 1.176
@@ -1220,6 +1220,9 @@
Since sets only define partial ordering (subset relationships), the output
of the \method{list.sort()} method is undefined for lists of sets.
+Set elements are like dictionary keys; they need to define both
+\method{__hash__} and \method{__eq__} methods.
+
Binary operations that mix \class{set} instances with \class{frozenset}
return the type of the first operand. For example:
\samp{frozenset('ab') | set('bc')} returns an instance of \class{frozenset}.
More information about the Python-checkins
mailing list