[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