[Python-ideas] Adding collections.abc.Ordered

Guido van Rossum guido at python.org
Sun Nov 8 23:28:31 EST 2015


So if OrderedDict had always rejected construction from a dict, how would
you have written this?

On Sunday, November 8, 2015, Andrew Barnert via Python-ideas <
python-ideas at python.org> wrote:

> On Nov 8, 2015, at 14:10, Serhiy Storchaka <storchaka at gmail.com
> <javascript:;>> wrote:
> >
> >> On 08.11.15 23:12, Sjoerd Job Postmus wrote:
> >> On 8 Nov 2015, at 20:06, Amir Rachum <amir at rachum.com <javascript:;>
> >> <mailto:amir at rachum.com <javascript:;>>> wrote:
> >>> As part of BasicStruct I intend to allow the use of mapping types as
> >>> __slots__, with the semantics of default values..
> >>> So it'll look something like this:
> >>>
> >>>    class Point(BasicStruct):
> >>>        __slots__ = {'x': 5, 'y': 7}
> >>
> >> So instead they'll write
> >>     __slots__ = OrderedDict({'x': 5, 'y': 7})
> >> Causing the same issues?
> >
> > Perhaps OrderedDict should reject unordered sources. Hey, here is yet
> one use case!
>
> I've maintained code that does this:
>
>     self.headers = OrderedDict(headers)
>     self.origheaders = len(headers)
>
> … so it can later do this:
>
>     altheaders = list(self.headers.items())[self.origheaders:]
>
> Not a great design, but one that exists in the wild, and would be broken
> by OrderedDict not allowing a dict as an argument.
>
> Also, this wouldn't allow creating an OrderedDict from an empty dict
> (which seems far less stupid, but I didn't lead with it because I can't
> remember seeing it in real code).
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org <javascript:;>
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/



-- 
--Guido (mobile)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20151108/fab86b9b/attachment-0001.html>


More information about the Python-ideas mailing list