On 3/14/07, Jack Diederich <[EMAIL PROTECTED]> wrote: > I've snipped all the bits I understand and/or agree with.
I'm only quoting what I think needs clarification and/or hasn't already been addressed. Note you're responding to an old thread; Talin posted a new version of the PEP and I checked it in: http://www.python.org/dev/peps/pep-3115/ > I don't understand the keyword args other than 'metaclass.' > If class D inherits from class C does it also get passed the 'Implements' > keyword? No, it's up to the metaclass to define what happens. It has enough info to tell which interfaces C implements, so if it wants to it can easily make D implement them too without being explicitly told so. > I like the more explicit > > class C(metaclass=Implements(I1, I2)): > ... You can do it either way. The PEP however won't force people to do it this way if they like the other way. > Agreed, I currently use metaclasses that pull behavior flags from the > class body and it is less than pretty. In my experience when you have > those behavior flags in the class they change for every subclass too. > If they didn't they would be defined in the original metaclass. I think > of metaclasses as 'apply always' and class decorators as 'apply once.' But that's really between the metaclass and the decorator; the language doesn't constrain you. (I feel I'm repeating myself; we're so deep into meta-land that we can only provide mechanism, not policy on how to use it.) -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ 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
