On Sat, Jun 11, 2016 at 7:51 PM, Émanuel Barry <vgr...@live.ca> wrote: >> From: Eric Snow >> 1. if ``__definition_order__`` is defined in the class body then it >> must be a ``tuple`` of identifiers or ``None``; any other value >> will result in ``TypeError`` > > Why not just any arbitrary iterable, which get converted to a tuple at > runtime?
An arbitrary iterable does not necessarily infer a definition order. For example, dict is an iterable but the order is undefined. Also, I'd rather favor simplicity for this (most likely) uncommon corner case of manually setting __definition_order__, particularly at the start. If it proves to be a problematic restriction in the future we can loosen it. > __slots__ allows any arbitrary iterable: Yes, but __slots__ is not order-sensitive. >> is already complete by the time ``definition_order__`` is set, the > > Typo: missing leading underscores in __definition_order__ I'll fix that. > >> Compatibility >> ============= >> >> This PEP does not break backward compatibility, except in the case that >> someone relies *strictly* on ``dict`` as the class definition namespace. >> This shouldn't be a problem. > > Perhaps add a mention that isinstance(namespace, dict) will still be true, > so users don't get unnecessarily confused. Good point. > >> <class>.__dict__ as OrderedDict >> ------------------------------- > > <class> looks weird to me. I tend to use `cls` (although `klass` isn't > uncommon). `C` might also not be a bad choice. Yes, that is better. -eric _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com