• Guido van Rossum's avatar
    PyClass_New(): put the extended Don Beaudry hook back in. When one of · 28d80b10
    Guido van Rossum yazdı
    the base classes is not a classic class, and its class (the metaclass)
    is callable, call the metaclass to do the deed.
    
    One effect of this is that, when mixing classic and new-style classes
    amongst the bases of a class, it doesn't matter whether the first base
    class is a classic class or not: you will always get the error
    "TypeError: metatype conflict among bases".  (Formerly, with a classic
    class first, you'd get "TypeError: PyClass_New: base must be a class".)
    
    Another effect is that multiple inheritance from ExtensionClass.Base,
    with a classic class as the first class, transfers control to the
    ExtensionClass.Base class.  This is what we need for SF #443239 (and
    also for running Zope under 2.2a4, before ExtensionClass is replaced).
    28d80b10
classobject.c 54.7 KB