On Tue, Jun 5, 2012 at 12:42 PM, Terry Reedy <tjre...@udel.edu> wrote:
> 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. > It's for symmetry and straightforward translation with stacked decorators, i.e. between: @deco1 @deco2 [declaration] and __decorators__ = [deco1, deco2] Doing it the other way now means a different order for people to remember; there should be One Obvious Order for decorators, and the one we have now is it.
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com