On 28 November 2010 22:37, cool-RR <cool-rr@cool-rr.com> wrote:
`issubclass(1, list)` raises an Exception, complaining that `1` is not a class. This is wrong in my opinion. It should just return False.

Use case: I have an object which can be either a list, or a string, or a callable, or a type. And I want to check whether it's a sub-class of some base class.

So I don't think I should be taking extra precautions before using `issubclass`: If my object is not a subclass of the given base class, I should just get `False`.

FWIW (which isn't much I guess) it annoys me that I have to protect calls to issubclass with if isinstance(obj, type).

It isn't a subclass, so a False would be fine... The advantage of type checking is earlier failures when you're doing something wrong. The disadvantage is, well, all the disadvantages of type checking...

All the best,

Michael Foord



Python-ideas mailing list