On Mon, Oct 20, 2003 at 11:55:39AM -0400, Jim Fulton wrote:
> I've started work on a new-style ExtensionClass. This is a port
> of ExtensionClass to new-style classes.  This will provide a number
> of advantages:
> - Use of new-style class features (e.g. descriptors) in Zope objects.

this all sounds great.

One question about new-style ExtensionClass...
I wonder if it will address a minor gripe I have with the current 
ExtensionClass.  I spent a few minutes yesterday debugging some 
code like this:

class FooProduct(SimpleItem):

    def broken(self, obj):
        if isintance(obj, FooProduct):  # never true!
            raise TypeError 

    def working(self, obj):
        if obj.meta_type == FooProduct.meta_type:
            raise TypeError

As it turns out, isinstance(FooProduct(), FooProduct) returns false!
AFAICT it's ExtensionClass that is responsible for this surprising 
behavior.  The meta_type approach is a decent workaround, but 
it means I can't automatically detect all subclasses of FooProduct, 
which is a nice feature of isinstance.


Paul Winkler
Look! Up in the sky! It's MARTIAN TAB GEOLOGIST!
(random hero from isometric.spaceninja.com)

Zope-Dev maillist  -  [EMAIL PROTECTED]
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope )

Reply via email to