[Python-Dev] PEP: Ordered Class Definition Namespace

Nick Coghlan ncoghlan at gmail.com
Tue Jun 7 19:12:15 EDT 2016

On 7 June 2016 at 16:03, Raymond Hettinger <raymond.hettinger at gmail.com> wrote:
>> On Jun 7, 2016, at 10:51 AM, Eric Snow <ericsnowcurrently at gmail.com> wrote:
>> This PEP changes the default class definition namespace to ``OrderedDict``.
> I think this would be a nice improvement.
>> Furthermore, the order in which the attributes are defined in each class
>> body will now be preserved in ``type.__definition_order__``.  This allows
>> introspection of the original definition order, e.g. by class decorators.
> I'm unclear on why this would be needed.  Wouldn't the OrderedDict be sufficient for preserving definition order?

By the time decorators run, the original execution namespace is no
longer available - the contents have been copied into the class dict,
which will still be a plain dict (and there's a lot of code that calls
PyDict_* APIs on tp_dict, so replacing the latter with a subclass is
neither trivial nor particularly safe in the presence of extension


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Python-Dev mailing list