[New-bugs-announce] [issue7624] isinstance(... , collections.Callable) fails with oldstyle class i nstances

Roger Gammans report at bugs.python.org
Sun Jan 3 20:13:33 CET 2010


New submission from Roger Gammans <rgammans at computer-surgery.co.uk>:

The following sequence causes isinstance to raise an exception rather than to return False.

>>> class foo:
...     pass
... 
>>> import collections
>>> isinstance(foo,collections.Callable)
True
>>> isinstance(foo(),collections.Callable)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/abc.py", line 131, in __instancecheck__
    return (cls.__subclasscheck__(subclass) or
  File "/usr/lib/python2.6/abc.py", line 147, in __subclasscheck__
    ok = cls.__subclasshook__(subclass)
  File "/usr/lib/python2.6/_abcoll.py", line 117, in __subclasshook__
    if any("__call__" in B.__dict__ for B in C.__mro__):
AttributeError: class foo has no attribute '__mro__'
>>>

----------
components: Library (Lib)
messages: 97175
nosy: rgammans
severity: normal
status: open
title: isinstance(... ,collections.Callable) fails with oldstyle class i nstances
versions: Python 2.6

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue7624>
_______________________________________


More information about the New-bugs-announce mailing list