[Python-Dev] Sets are mappings? (original) (raw)

M.-A. Lemburg mal at egenix.com
Wed Dec 21 00:52:55 CET 2005


Aahz wrote:

On Tue, Dec 20, 2005, M.-A. Lemburg wrote:

Josiah Carlson wrote:

New superclasses for all built-in types (except for string and unicode, which already subclass from basestring).

int, float, complex (long) : subclass from basenumber tuple, list, set : subclass from basesequence dict : subclass from basemapping set should be under basemapping. Are you sure? Sets are not actually a mapping; they consist only of keys.

You're right, sets should really have a separate base class.

However, in reality they behave mostly like dictionaries using (and hiding) a common value of all keys.

The Python docs do not include sets under maps, and sets do not support some of the standard mapping methods (notably keys()). Raymond Hettinger has also talked about switching to a different internal structure for sets.

basestring is an abstract class in the sense that it doesn't provide any interface on its own. I guess the others should use the same approach.

They are usually only used for quickly checking for an interface or "type property".

Note that unicode and strings don't share a common implementation either - they just happen to expose a rather similar interface.

(Should this discussion move to c.l.py? Normally I'd think so, but I think it's critical that the core developers agree about this. It's also critical for me to know because I'm writing a book, but that's not reason enough to stick with python-dev. ;-)

Not sure about others. I rarely read c.l.p. Even pydev has enough traffic these days to require filtering.

-- Marc-Andre Lemburg eGenix.com

Professional Python Services directly from the Source (#1, Dec 21 2005)

Python/Zope Consulting and Support ... http://www.egenix.com/ mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/


::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::



More information about the Python-Dev mailing list