On 4/30/07, Phillip J. Eby <[EMAIL PROTECTED]> wrote: > At 05:38 PM 4/30/2007 -0700, Guido van Rossum wrote: > >Of course, once the core language adds built-in support for such a > >feature, it becomes slightly less advanced, and it is reasonable to > >expect that the special functionality be provided by object or type or > >some other aspect of the standard class definition machinery (maybe > >even a default decorator that's always invoked). > > Yep. That's precisely it. I'm suggesting that since GF's, enhanced > super(), and even potentially @abstractmethod have a use for such a hook, > that this would be an appropriate hook to provide in object or type or > whatever. Or, have the MAKE_CLASS opcode just do something like: > > ... > cls = mcls(name, bases, prepared_dict) > for decorator in cls.__decorators__: > cls = decorator(cls) > ... > > Heck, I'd settle for: > > ... > cls = mcls(name, bases, prepared_dict) > for callback in cls.__decorators__: > callback(cls) > ... > > As this version would still handle all of my use cases; it just wouldn't be > as useful for things like @abstractmethod that really do want to change the > metaclass or bases rather than simply be notified of what the class is.
OK, put one of those in the PEP (but I still think it's a waste of time to mention super). Though I think you may have to investigate exactly what MAKE_CLASS does. -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com