I just want to add a link to a 2.5 year old discussion on this issue: <http://bugs.python.org/issue1507011>. In that discussion I disagreed with Martin and argued that "interning is a set operation and it is unfortunate that set API does not support it directly."
On Fri, Apr 3, 2009 at 12:43 PM, "Martin v. Löwis" <mar...@v.loewis.de> wrote: >> I've stumbled upon an oddity using sets. It's trivial to test if a >> value is in the set, but it appears to be impossible to retrieve a >> stored value, other than by iterating over the whole set. > > Of course it is. That's why it is called a set: it's an unordered > collection of objects, keyed by nothing. > > If you have a set of elements, and you check "'foo' in s", then > you should be able just to use the string 'foo' itself for whatever > you want to do with it - you have essentially created a set of > strings. If you think that 'foo' and Element('foo') are different > things, you should not implement __eq__ in a way that they are > considered equal. > > Regards, > Martin > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > http://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > http://mail.python.org/mailman/options/python-dev/alexander.belopolsky%40gmail.com > _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com