On Nov 8, 2015, at 14:10, Serhiy Storchaka
On 08.11.15 23:12, Sjoerd Job Postmus wrote: On 8 Nov 2015, at 20:06, Amir Rachum
mailto:amir@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).