[Python-Dev] [Python-checkins] peps: Add PEP 422: Dynamic Class Decorators (original) (raw)
PJ Eby pje at telecommunity.com
Tue Jun 5 20:26:10 CEST 2012
- Previous message: [Python-Dev] [Python-checkins] peps: Add PEP 422: Dynamic Class Decorators
- Next message: [Python-Dev] [Python-checkins] peps: Add PEP 422: Dynamic Class Decorators
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, Jun 5, 2012 at 12:42 PM, Terry Reedy <tjreedy at 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 listiterator 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20120605/5637ec8b/attachment.html>
- Previous message: [Python-Dev] [Python-checkins] peps: Add PEP 422: Dynamic Class Decorators
- Next message: [Python-Dev] [Python-checkins] peps: Add PEP 422: Dynamic Class Decorators
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]