Enhance issubclass() and PyObject_IsSubclass() so that a tuple is

supported as the second argument. This has the same meaning as
for isinstance(), i.e. issubclass(X, (A, B)) is equivalent
to issubclass(X, A) or issubclass(X, B). Compared to isinstance(),
this patch does not search the tuple recursively for classes, i.e.
any entry in the tuple that is not a class, will result in a
TypeError.

This closes SF patch #649608.
This commit is contained in:
Walter Dörwald 2002-12-12 16:41:44 +00:00
parent b083cb3901
commit d9a6ad3beb
7 changed files with 80 additions and 37 deletions

View file

@ -1586,7 +1586,9 @@ builtin_issubclass(PyObject *self, PyObject *args)
PyDoc_STRVAR(issubclass_doc,
"issubclass(C, B) -> bool\n\
\n\
Return whether class C is a subclass (i.e., a derived class) of class B.");
Return whether class C is a subclass (i.e., a derived class) of class B.\n\
When using a tuple as the second argument issubclass(X, (A, B, ...)),\n\
is a shortcut for issubclass(X, A) or issubclass(X, B) or ... (etc.).");
static PyObject*