Class definition attribute order

Terry Reedy tjreedy at udel.edu
Tue Aug 5 01:47:40 EDT 2008



Michele Simionato wrote:
> On Aug 5, 4:38 am, "Gabriel Genellina":
>> So the namespace that the metaclass receives when the class is created,  
>> will be some kind of ordered dictionary?
>> Metaclasses are available for a long time ago, but the definition order is  
>> lost right at the start, when the class body is executed. Will this step  
>> be improved in Python 3.0 then?
>>
> 
> Yep. See http://stacktrace.it/articoli/2008/01/metaclassi-python-3000
> (I am working on an English translation these days,
> but for the moment you can use Google Translator).

Bfiefly, as I understood the discussion some months ago: In 2.x, the 
class body is executed in a local namespace implemented as a normal dict 
and *then* passed to the metaclass.  In 3.0, the metaclass gets brief 
control *before* execution so, among other possibilities, it can 
substitute an (insertion) ordered dict for the local namespace.  I will 
leave the details to Michele's article and its eventual translation.

tjr




More information about the Python-list mailing list