[Python-ideas] Adding collections.abc.Ordered
Andrew Barnert
abarnert at yahoo.com
Sun Nov 8 19:42:05 EST 2015
On Nov 8, 2015, at 14:10, Serhiy Storchaka <storchaka at gmail.com> wrote:
>
>> On 08.11.15 23:12, Sjoerd Job Postmus wrote:
>> On 8 Nov 2015, at 20:06, Amir Rachum <amir at rachum.com
>> <mailto:amir at rachum.com>> 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).
More information about the Python-ideas
mailing list