[Python-bugs-list] isinstance(obj, extensionclass) should work? (PR#208)

claudius@accessoft.com claudius@accessoft.com
Thu, 17 Feb 2000 17:23:24 -0500 (EST)


Full_Name: Chris Knight
Version: 1.5.2
OS: Solaris 2.6
Submission from: corum.arc.nasa.gov (128.102.104.42)


From my Python interpreter (using ZODB's Persistence extension class as an
example):

Python 1.5.2 (#1, Feb  4 2000, 16:01:00)  [GCC 2.95.1 19990816 (release)] on
sunos5
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> import Persistence.Persistent
Traceback (innermost last):
  File "<stdin>", line 1, in ?
ImportError: No module named Persistent
>>> import Persistence
>>> import ZODB
>>> class foo(Persistence.Persistent):
...   def __init__(self): print 'foo'
... 
>>> a = foo()
foo
>>> a.__class__
<extension class __main__.foo at 1046c8>
>>> a.__class__ == foo
1
>>> foo
<extension class __main__.foo at 1046c8>
>>> isinstance(a, foo)
Traceback (innermost last):
  File "<stdin>", line 1, in ?
TypeError: second argument must be a class

Obviously, if obj.__class__ == extension class, shouldn't isinstance(obj,
extension class) work fine?  (Otherwise, changing a regular class into an
extension class would break code that uses isinstance.)