@@ -376,21 +376,17 @@ Object Protocol
376376
377377.. c :function :: int  PyObject_IsSubclass (PyObject *derived, PyObject *cls)   
378378
379-    Return ``1 `` if the class  *derived * is identical to or derived from the class  
380-    * cls *, otherwise return `` 0 ``.  In case of an  error, return `` -1 `` . 
379+    Return ``1 `` if *derived * is a subclass of * cls *, `` 0 `` if not, or `` -1 `` on  
380+    error. 
381381
382-    If *cls * is a tuple, the check will be done against every entry in *cls *. 
383-    The result will be ``1 `` when at least one of the checks returns ``1 ``, 
384-    otherwise it will be ``0 ``. 
385- 
386-    If *cls * has a :meth: `~type.__subclasscheck__ ` method, it will be called to 
387-    determine the subclass status as described in :pep: `3119 `.  Otherwise, 
388-    *derived * is a subclass of *cls * if it is a direct or indirect subclass, 
389-    i.e. contained in :attr: `cls.__mro__ <type.__mro__> `. 
382+    If *cls * is a tuple, return ``1 `` if *derived * is a subclass of any entry in 
383+    *cls *. 
390384
391-    Normally only class objects, i.e. instances of :class: `type ` or a derived 
392-    class, are considered classes.  However, objects can override this by having 
393-    a :attr: `~type.__bases__ ` attribute (which must be a tuple of base classes). 
385+    The check respects :meth: `~type.__subclasscheck__ ` method if defined (see 
386+    :pep: `3119 `); otherwise, checks whether *derived* is in 
387+     :attr: `cls.__mro__ <type.__mro__> `. Non-class objects with a
388+    :attr: `~type.__bases__ ` attribute (which must be a tuple of base classes) 
389+    are also supported. 
394390
395391
396392.. c:function:: int PyObject_IsInstance(PyObject *inst, PyObject *cls)  
0 commit comments