Ross Boylan wrote:
class ECSpam(Base, Spam): #Base is an ExtensionClass def __init__(self): ECSpam.inheritedAttribute('__init__')(self)
What if you have more than one base class with the method defined?
The normal Python inheritted attribute lookup rules: depth first, left to right through the list of base classes.
The implication of th example is that the non-extension class base class is used
If Spam defines __init__ and Base doesn't, that would be the case...
(though even that is not clear; would this work if Base had __init__?),
No, in that case Base's __init__ would be used, see python inheritence rules.
but what if there are several non-extension base classes?
See python inheritence rules...
The syntax doesn't provide a way of indicating which class you want the method from, and so it seems incomplete.
Well, if you wanted it to come from Base specifically, you could do: Base.inheritedAttribute('__init__')(self) not sure about the non-EC bases, perhaps Jim could clarify this? cheers, Chris
_______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )