It's actually the pre-decoration class, since the cell is initialised before the class is passed to the first decorator. I agree it's a little weird, but I did try to describe it accurately in the new docs.
-- Sent from my phone, thus the relative brevity :) On Jun 5, 2012 7:52 AM, "PJ Eby" <p...@telecommunity.com> wrote: > On Sun, May 20, 2012 at 4:38 AM, Nick Coghlan <ncogh...@gmail.com> wrote: > >> When writing the docs for types.new_class(), I discovered that the >> description of the class creation process in the language reference >> was not only hard to follow, it was actually *incorrect* when it came >> to describing the algorithm for determining the correct metaclass. >> >> I rewrote the offending section of the language reference to both >> describe the correct algorithm, and hopefully also to be easier to >> read. Once people have had a chance to review the changes in the 3.3 >> docs, I'll backport the update to 3.2. >> >> Previous docs: >> http://docs.python.org/py3k/reference/datamodel.html#customizing-class-creation >> Updated docs: >> http://docs.python.org/dev/reference/datamodel.html#customizing-class-creation >> > > This is only sort-of-related, but while reviewing the above, the bit about > __class__ caught my eye and brought this question to mind: how do class > decorators interact with __class__? Specifically, what happens (or more to > the point, is *supposed* to happen and documented as such) if a class > decorator returns a different class object? > > PEP 3135 doesn't address this, AFAICT. It refers only to "the class", but > doesn't say whether this is the class-as-returned-by-decorator or original > defined class. (ISTM that it should be the decorated class, since > otherwise this would be different behavior compared to code that explicitly > named the class.) > > (Oh, and the rewrite looked good!) > > >
_______________________________________________ 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