> > I want to test whether an object is an instance of any user-defined >> class. "isinstance" is less helpful than one would expect. >> >> >>> import types >> >>> class foo() : # define dummy class >> ... pass >> ... >> >>> x = foo() >> >>> >> >>> type(x) >> <type 'instance'> >> >>> >> >>> isinstance(x, types.ClassType) >> False >> >>> isinstance(x, types.InstanceType) >> True >> >>> foo >> <class __main__.foo at 0x004A2BD0> >> >>> x >> <__main__.foo instance at 0x020080A8> >> >> So far, so good. x is an InstanceType. But let's try a >> class with a constructor: >> >> >>> class bar(object) : >> ... def __init__(self, val) : >> ... self.val = val >> ... >> >>> b = bar(100) >> >>> b >> <__main__.bar object at 0x01FF50D0> >> >>> isinstance(b, types.InstanceType) >> False >> >>> isinstance(b, types.ClassType) >> False >> >>>>>> bar >> <class '__main__.bar'> >> >> well the same code on my side returns true when you run isinstance(b, types.InstanceType) even when the class has a constructor. Why is there a difference in the output when we are both using Cython 2.6 ?? (2.6.4 to be exact)
Cheers Satish -- http://satisheerpini.net
-- http://mail.python.org/mailman/listinfo/python-list