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
_______________________________________________
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

Reply via email to