At 02:13 PM 5/1/2007 -0400, Jim Jewett wrote: >On 5/1/07, Phillip J. Eby <[EMAIL PROTECTED]> wrote: > > Yup, and we're still not now. :) Or at least, I don't understand what the > > code below does, or more precisely, why it's different from just having a > > __decorators__ list containing direct callbacks. > >That would be fine too... but I thought you were saying that you >couldn't do this at all any more, because the metaclass had to be >determined before the class, instead of inside it.
Correct. >Note that it doesn't have to be any particular magic name -- just one >agreed upon by the metaclass and the class author. Today, some such >names are semi-standardized already; you don't need language support. > >Why would you suddenly start needing language support after 3115? Because it eliminated an existing magic name: __metaclass__. Under the old regime, you could simply replace __metaclass__ with a function that called the old __metaclass__, then applied any desired decoration to the result. A __decorators__ hook would replace this hack with something less convoluted, and allow method decorators and attribute descriptors a chance to modify the class, if needed. (For example, the @abstractmethod could ensure the class was abstract, or raise an error if the class wasn't explicitly declared abstract.) _______________________________________________ Python-3000 mailing list [email protected] http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com
