[Python-Dev] [Python-checkins] peps: Add PEP 422: Dynamic Class Decorators

Terry Reedy tjreedy at udel.edu
Tue Jun 5 18:42:38 CEST 2012


On 6/5/2012 8:09 AM, nick.coghlan wrote:

>    Add PEP 422: Dynamic Class Decorators

> +Iterating over decorator entries in reverse order
> +-------------------------------------------------
> +
> +This order was chosen to match the layout of lexical decorators when
> +converted to ordinary function calls. Just as the following are equivalent::
> +
> +    @deco2
> +    @deco1
> +    class C:
> +        pass
> +
> +    class C:
> +        pass
> +    C = deco2(deco1(C))
> +
> +So too will the following be roughly equivalent (aside from inheritance)::
> +
> +    class C:
> +        __decorators__ = [deco2, deco1]

I think you should just store the decorators in the correct order of use
+        __decorators__ = [deco1, deco2]
and avoid the nonsense (time-waste) of making an indirect copy via 
list_iterator and reversing it each time the attribute is used.

If the list is constructed in reversed order, immediately reverse it.

> +
> +    class C:
> +        pass
> +    C = deco2(deco1(C))

Terry Jan Reedy


More information about the Python-Dev mailing list