[Python-Dev] Should issubclass() be more like isinstance()?

Georg Brandl g.brandl at gmx.net
Wed Apr 5 08:49:59 CEST 2006


Crutcher Dunnavant wrote:
> While nocking together a framework today, I ran into the amazing
> limitations of issubclass().
> 
> A) issubclass() throws a TypeError if the object being checked is not
> a class, which seems very strange. It is a predicate, and lacking a
> isclass() method, it should just return False.
> B) issubclass() won't work on a list of classs, the way isinstance() does.
> 
> Is there any support for patches which fix A and/or B?

I don't think B is broken:

Python 2.4.2 [...]
>>> issubclass(int, 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: issubclass() arg 2 must be a class or tuple of classes
>>> issubclass(int, (int, str))
True
>>> issubclass(str, (int, str))
True
>>> issubclass(dict, (int, str))
False
>>>

(both isinstance() and issubclass() don't work on a _list_ as second argument)

Georg



More information about the Python-Dev mailing list