>>> class Hello:
pass
and
>>> isinstance(Hello,object)
True
>>> issubclass(Hello,object)
False
>
So basically isinstance(new_object, some_class) returns True if the object is an instantiated class of some_class. In other words, new_object is an some_class() object. issubclass checks if the object has a subclass of some_class.
Better explained with a simple example that makes perfect sense:
class some_class():
pass
class new_object_class(some_class):
pass
instance_object = new_object_class()
isinstance(instance_object, new_object_class) == True
issubclass(instance_object, some_class) == True
isinstance(new_object_class,some_class) == True
issubclass(new_object_class,some_class) == True
No need for false tests to explain this.